1#include "SkTypes.h" 2#include <stdio.h> 3#include <stdlib.h> 4 5void sk_throw() { 6 SkASSERT(!"sk_throw"); 7 abort(); 8} 9 10void sk_out_of_memory(void) { 11 SkASSERT(!"sk_out_of_memory"); 12 abort(); 13} 14 15void* sk_malloc_throw(size_t size) { 16 return sk_malloc_flags(size, SK_MALLOC_THROW); 17} 18 19void* 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 30void sk_free(void* p) { 31 if (p) { 32 free(p); 33 } 34} 35 36void* 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