00001
00008 #include <PalmTypes.h>
00009 #include <MemoryMgr.h>
00010 #include <ui.h>
00011
00012 #if defined(MEM_DEBUG)
00013 MemPtr
00014 _MemPtrNew(UInt32 size, char *file, int line)
00015 {
00016 MemPtr mp = MemPtrNew(size);
00017 WriteLog("%lx = MemPtrNew(%lx) [%s:%d]\n", mp, size, file, line);
00018 return (mp);
00019 }
00020
00021 MemPtr
00022 _MemHandleLock(MemHandle mh, char *file, int line)
00023 {
00024 MemPtr mp = MemHandleLock(mh);
00025 WriteLog("%lx = MemHandleLock(%lx) [%s:%d]\n", mp, mh, file, line);
00026 return (mp);
00027 }
00028
00029 Err
00030 _MemHandleUnlock(MemHandle mh, char *file, int line)
00031 {
00032 Err err = MemHandleUnlock(mh);
00033 WriteLog("%x = MemHandleUnlock(%lx) [%s:%d]\n", err, mh, file, line);
00034 return (err);
00035 }
00036
00037 MemHandle
00038 _MemHandleNew(UInt32 size, char *file, int line)
00039 {
00040 MemHandle mh = MemHandleNew(size);
00041 WriteLog("%lx = MemHandleNew(%lx) [%s:%d]\n", mh, size, file, line);
00042 return (mh);
00043 }
00044
00045 MemHandle
00046 _MemPtrRecoverHandle(MemPtr mp, char *file, int line)
00047 {
00048 MemHandle mh = MemPtrRecoverHandle(mp);
00049 WriteLog("%lx = MemPtrRecoverHandle(%lx) [%s:%d]\n", mh, mp, file,
00050 line);
00051 return (mh);
00052 }
00053
00054 Err
00055 _MemHandleResize(MemHandle mh, UInt32 size, char *file, int line)
00056 {
00057 Err err = MemHandleResize(mh, size);
00058 WriteLog("%d = MemHandleResize(%lx, %lx) [%s:%d]\n", err, mh,
00059 size, file, line);
00060 return (err);
00061 }
00062
00063 Err
00064 _MemHandleFree(MemHandle mh, char *file, int line)
00065 {
00066 Err err = MemHandleFree(mh);
00067 WriteLog("%d = MemHandleFree(%lx) [%s:%d]\n", err, mh, file, line);
00068 return (err);
00069 }
00070
00071 Err
00072 _MemPtrFree(MemPtr mp, char *file, int line)
00073 {
00074 Err err = MemPtrFree(mp);
00075 WriteLog("%d = MemPtrFree(%lx) [%s:%d]\n", err, mp, file, line);
00076 return (err);
00077 }
00078 #endif
00079 #include <mem_compat.h>
00080
00087 MemPtr
00088 palm_realloc(MemPtr old, UInt32 new_size)
00089 {
00090 MemHandle mh;
00091
00092 if (old == NULL) {
00093 mh = MemHandleNew(new_size);
00094 if (mh == NULL)
00095 return (mh);
00096 return (MemHandleLock(mh));
00097 }
00098
00099 mh = MemPtrRecoverHandle(old);
00100 MemPtrUnlock(old);
00101 MemHandleResize(mh, new_size);
00102 return (MemHandleLock(mh));
00103 }
00104
00105 MemPtr
00106 palm_calloc(UInt32 size, UInt32 count)
00107 {
00108 MemHandle mh;
00109 MemPtr mp;
00110
00111 mh = MemHandleNew(size * count);
00112 if (mh == NULL)
00113 return (mh);
00114 mp = MemHandleLock(mh);
00115 MemSet(mp, (Int32)(size * count), 0);
00116 return (mp);
00117 }
00118
00119 MemPtr
00120 palm_malloc(UInt32 size)
00121 {
00122 MemHandle mh = MemHandleNew(size);
00123 return (MemHandleLock(mh));
00124 }
00125
00126 void
00127 palm_free(MemPtr mem)
00128 {
00129 MemHandle mh = MemPtrRecoverHandle(mem);
00130 MemHandleUnlock(mh);
00131 MemHandleFree(mh);
00132 }
00133