1 /* 2 3 Temporary implementation of a memory manager in the 4 JPEG library used in FlashPix. 5 6 7 We have define the operators FPXMalloc and FPXFree 8 9 10 */ 11 12 13 #include <stdlib.h> 14 #include <memory.h> 15 #include <string.h> 16 #include "jpegconf.h" 17 #include "fpxmem.h" 18 19 MallocHookType fpxMallocHook = 0; 20 FreeHookType fpxFreeHook = 0; 21 FPX_malloc(size_t theSize)22void * FPX_malloc(size_t theSize) 23 { 24 return (fpxMallocHook ? (*fpxMallocHook)(theSize) : malloc(theSize)); 25 } 26 FPX_calloc(size_t num,size_t size)27void * FPX_calloc(size_t num, size_t size) 28 { 29 size_t realsize = num*size; 30 void * ptr; 31 if ((ptr = FPX_malloc(realsize))) 32 memset(ptr,0,realsize); 33 return ptr; 34 } 35 36 37 FPX_free(void * ptr)38void FPX_free(void * ptr) 39 { 40 if (fpxFreeHook) 41 (*fpxFreeHook)(ptr); 42 else 43 free(ptr); 44 } 45 FPXSetMemoryHooks(MallocHookType mallocHook,FreeHookType freeHook)46void FPXSetMemoryHooks(MallocHookType mallocHook, FreeHookType freeHook) 47 { 48 if ( (mallocHook) && (freeHook)) { 49 fpxMallocHook = mallocHook; 50 fpxFreeHook = freeHook; 51 } 52 else { 53 fpxMallocHook = 0; 54 fpxFreeHook = 0; 55 } 56 } 57 58 59