1 /* libs/graphics/ports/SkMemory_brew.cpp
2 **
3 ** Copyright 2009, The Android Open Source Project
4 ** Copyright 2009, Company 100, Inc.
5 **
6 ** Licensed under the Apache License, Version 2.0 (the "License");
7 ** you may not use this file except in compliance with the License.
8 ** You may obtain a copy of the License at
9 **
10 ** http://www.apache.org/licenses/LICENSE-2.0
11 **
12 ** Unless required by applicable law or agreed to in writing, software
13 ** distributed under the License is distributed on an "AS IS" BASIS,
14 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 ** See the License for the specific language governing permissions and
16 ** limitations under the License.
17 */
18
19 #include "SkTypes.h"
20
21 #ifdef SK_BUILD_FOR_BREW
22
23 #include <AEEStdLib.h>
24
sk_throw()25 void sk_throw() {
26 SkASSERT(!"sk_throw");
27 abort();
28 }
29
sk_out_of_memory(void)30 void sk_out_of_memory(void) {
31 SkASSERT(!"sk_out_of_memory");
32 abort();
33 }
34
sk_malloc_throw(size_t size)35 void* sk_malloc_throw(size_t size) {
36 return sk_malloc_flags(size, SK_MALLOC_THROW);
37 }
38
sk_realloc_throw(void * addr,size_t size)39 void* sk_realloc_throw(void* addr, size_t size) {
40 void* p = REALLOC(addr, size | ALLOC_NO_ZMEM);
41 if (size == 0) {
42 return p;
43 }
44 if (p == NULL) {
45 sk_throw();
46 }
47 return p;
48 }
49
sk_free(void * p)50 void sk_free(void* p) {
51 FREEIF(p);
52 }
53
sk_malloc_flags(size_t size,unsigned flags)54 void* sk_malloc_flags(size_t size, unsigned flags) {
55 void* p = MALLOC(size | ALLOC_NO_ZMEM);
56 if (p == NULL) {
57 if (flags & SK_MALLOC_THROW) {
58 sk_throw();
59 }
60 }
61 return p;
62 }
63
64 #endif
65
66