00001 00007 /* License: new BSD license (see header file) */ 00008 00009 #include "NPWStdAlloc.h" 00010 #include <stdlib.h> 00011 00012 NPWErr NPWAllocStdlib(void **p, NPWInt size, void *userData) 00013 { 00014 if (*p) 00015 if (size < 0) 00016 { 00017 free(*p); 00018 *p = NULL; 00019 return kNPWErrOk; 00020 } 00021 else 00022 { 00023 void *q = realloc(*p, size); 00024 if (!q) 00025 return kNPWErrNotEnoughMemory; 00026 *p = q; 00027 return kNPWErrOk; 00028 } 00029 else 00030 { 00031 *p = malloc(size); 00032 return *p ? kNPWErrOk : kNPWErrNotEnoughMemory; 00033 } 00034 }