[Scummvm-cvs-logs] SF.net SVN: scummvm: [23904] scummvm/trunk/backends/platform/PalmOS/Src/ missing

chrilith at users.sourceforge.net chrilith at users.sourceforge.net
Sun Sep 17 11:46:13 CEST 2006


Revision: 23904
          http://svn.sourceforge.net/scummvm/?rev=23904&view=rev
Author:   chrilith
Date:     2006-09-17 02:46:06 -0700 (Sun, 17 Sep 2006)

Log Message:
-----------
Added option to trace memory allocation

Modified Paths:
--------------
    scummvm/trunk/backends/platform/PalmOS/Src/missing/ext_stdlib.c
    scummvm/trunk/backends/platform/PalmOS/Src/missing/stdlib.h

Modified: scummvm/trunk/backends/platform/PalmOS/Src/missing/ext_stdlib.c
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/missing/ext_stdlib.c	2006-09-17 09:40:53 UTC (rev 23903)
+++ scummvm/trunk/backends/platform/PalmOS/Src/missing/ext_stdlib.c	2006-09-17 09:46:06 UTC (rev 23904)
@@ -24,6 +24,10 @@
 
 #include <stdlib.h>
 
+#ifdef STDLIB_TRACE_MEMORY
+UInt32 __stdlib_trace_memory = 0;
+#endif
+
 #define memNewChunkFlagAllowLarge	0x1000 
 SysAppInfoPtr SysGetAppInfo(SysAppInfoPtr *uiAppPP, SysAppInfoPtr *actionCodeAppPP) SYS_TRAP(sysTrapSysGetAppInfo);
 
@@ -60,6 +64,9 @@
 		newP = MemChunkNew(0, size, attr);
 	}
 
+#ifdef STDLIB_TRACE_MEMORY
+	__stdlib_trace_memory += size;
+#endif
 	return newP;
 }
 
@@ -72,18 +79,33 @@
 	if (newP)
 		MemSet(newP,size,0);
 
+#ifdef STDLIB_TRACE_MEMORY
+	__stdlib_trace_memory += size;
+#endif
 	return newP;
 }
 
 Err free(MemPtr memP) {
-	if (memP)
+	if (memP) {
+#ifdef STDLIB_TRACE_MEMORY
+		UInt32 sz = MemPtrSize(memP);
+		__stdlib_trace_memory -= sz;
+#endif
 		return MemPtrFree(memP);
+	}
+
 	return memErrInvalidParam;
 }
 
 MemPtr realloc(MemPtr oldP, UInt32 size) {
 	MemPtr newP;
 
+#ifdef STDLIB_TRACE_MEMORY
+	UInt32 sz = MemPtrSize(oldP);
+	__stdlib_trace_memory -= sz;
+	__stdlib_trace_memory += size;
+#endif
+
 	if (oldP != NULL)
 		if (MemPtrResize(oldP, size) == 0)
 			return oldP;

Modified: scummvm/trunk/backends/platform/PalmOS/Src/missing/stdlib.h
===================================================================
--- scummvm/trunk/backends/platform/PalmOS/Src/missing/stdlib.h	2006-09-17 09:40:53 UTC (rev 23903)
+++ scummvm/trunk/backends/platform/PalmOS/Src/missing/stdlib.h	2006-09-17 09:46:06 UTC (rev 23904)
@@ -36,12 +36,17 @@
 #endif
 
 /* malloc stuff */
-#if defined(COMPILE_ZODIAC)
-#	define malloc	MemPtrNew
-#elif defined(COMPILE_OS5) && defined(PALMOS_ARM)
+#ifdef STDLIB_TRACE_MEMORY
 #	define malloc	__malloc
+	extern UInt32 __stdlib_trace_memory;
 #else
-#	define malloc	MemGluePtrNew
+#	if defined(COMPILE_ZODIAC)
+#		define malloc	MemPtrNew
+#	elif defined(COMPILE_OS5) && defined(PALMOS_ARM)
+#		define malloc	__malloc
+#	else
+#		define malloc	MemGluePtrNew
+#	endif
 #endif
 
 /* custom exit (true exit !) */


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list