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)22 void * FPX_malloc(size_t theSize)
23 {
24   return (fpxMallocHook ? (*fpxMallocHook)(theSize) : malloc(theSize));
25 }
26 
FPX_calloc(size_t num,size_t size)27 void * 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)38 void FPX_free(void * ptr)
39 {
40   if (fpxFreeHook)
41     (*fpxFreeHook)(ptr);
42   else
43     free(ptr);
44 }
45 
FPXSetMemoryHooks(MallocHookType mallocHook,FreeHookType freeHook)46 void 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