[Scummvm-cvs-logs] SF.net SVN: scummvm:[52465] scummvm/trunk/engines/sci/engine/gc.cpp

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue Aug 31 11:45:36 CEST 2010


Revision: 52465
          http://scummvm.svn.sourceforge.net/scummvm/?rev=52465&view=rev
Author:   thebluegr
Date:     2010-08-31 09:45:36 +0000 (Tue, 31 Aug 2010)

Log Message:
-----------
SCI: Disabled some debug related GC code, which effectively
wastes cycles if we're not debugging the GC

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/gc.cpp

Modified: scummvm/trunk/engines/sci/engine/gc.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/gc.cpp	2010-08-31 05:18:38 UTC (rev 52464)
+++ scummvm/trunk/engines/sci/engine/gc.cpp	2010-08-31 09:45:36 UTC (rev 52465)
@@ -28,6 +28,8 @@
 
 namespace Sci {
 
+//#define GC_DEBUG_CODE
+
 struct WorklistManager {
 	Common::Array<reg_t> _worklist;
 	AddrSet _map;
@@ -153,10 +155,12 @@
 
 	// Some debug stuff
 	debugC(2, kDebugLevelGC, "[GC] Running...");
+#ifdef GC_DEBUG_CODE
 	const char *segnames[SEG_TYPE_MAX + 1];
 	int segcount[SEG_TYPE_MAX + 1];
 	memset(segnames, 0, sizeof(segnames));
 	memset(segcount, 0, sizeof(segcount));
+#endif
 
 	// Compute the set of all segments references currently in use.
 	AddrSet *activeRefs = findAllActiveReferences(s);
@@ -166,10 +170,13 @@
 	const Common::Array<SegmentObj *> &heap = segMan->getSegments();
 	for (uint seg = 1; seg < heap.size(); seg++) {
 		SegmentObj *mobj = heap[seg];
+
 		if (mobj != NULL) {
+#ifdef GC_DEBUG_CODE
 			const SegmentType type = mobj->getType();
 			segnames[type] = SegmentObj::getSegmentTypeName(type);
-			
+#endif
+
 			// Get a list of all deallocatable objects in this segment,
 			// then free any which are not referenced from somewhere.
 			const Common::Array<reg_t> tmp = mobj->listAllDeallocatable(seg);
@@ -179,7 +186,9 @@
 					// Not found -> we can free it
 					mobj->freeAtAddress(segMan, addr);
 					debugC(2, kDebugLevelGC, "[GC] Deallocating %04x:%04x", PRINT_REG(addr));
+#ifdef GC_DEBUG_CODE
 					segcount[type]++;
+#endif
 				}
 			}
 
@@ -188,11 +197,13 @@
 
 	delete activeRefs;
 
+#ifdef GC_DEBUG_CODE
 	// Output debug summary of garbage collection
 	debugC(2, kDebugLevelGC, "[GC] Summary:");
 	for (int i = 0; i <= SEG_TYPE_MAX; i++)
 		if (segcount[i])
 			debugC(2, kDebugLevelGC, "\t%d\t* %s", segcount[i], segnames[i]);
+#endif
 }
 
 } // End of namespace Sci


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