1 #include "SkTypes.h" 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 void sk_throw() { 6 SkASSERT(!"sk_throw"); 7 abort(); 8 } 9 10 void sk_out_of_memory(void) { 11 SkASSERT(!"sk_out_of_memory"); 12 abort(); 13 } 14 15 void* sk_malloc_throw(size_t size) { 16 return sk_malloc_flags(size, SK_MALLOC_THROW); 17 } 18 19 void* sk_realloc_throw(void* addr, size_t size) { 20 void* p = realloc(addr, size); 21 if (size == 0) { 22 return p; 23 } 24 if (p == NULL) { 25 sk_throw(); 26 } 27 return p; 28 } 29 30 void sk_free(void* p) { 31 if (p) { 32 free(p); 33 } 34 } 35 36 void* sk_malloc_flags(size_t size, unsigned flags) { 37 void* p = malloc(size); 38 if (p == NULL) { 39 if (flags & SK_MALLOC_THROW) { 40 sk_throw(); 41 } 42 } 43 return p; 44 } 45 46