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 25 void sk_throw() { 26 SkASSERT(!"sk_throw"); 27 abort(); 28 } 29 30 void sk_out_of_memory(void) { 31 SkASSERT(!"sk_out_of_memory"); 32 abort(); 33 } 34 35 void* sk_malloc_throw(size_t size) { 36 return sk_malloc_flags(size, SK_MALLOC_THROW); 37 } 38 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 50 void sk_free(void* p) { 51 FREEIF(p); 52 } 53 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