[Scummvm-cvs-logs] SF.net SVN: scummvm: [31961] scummvm/trunk/engines/made/resource.cpp

john_doe at users.sourceforge.net john_doe at users.sourceforge.net
Fri May 9 09:22:23 CEST 2008


Revision: 31961
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31961&view=rev
Author:   john_doe
Date:     2008-05-09 00:22:22 -0700 (Fri, 09 May 2008)

Log Message:
-----------
- Fixed a bug which sometimes caused crashes when ProjectReader::purgeCache() was called
- Some cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/made/resource.cpp

Modified: scummvm/trunk/engines/made/resource.cpp
===================================================================
--- scummvm/trunk/engines/made/resource.cpp	2008-05-09 01:58:12 UTC (rev 31960)
+++ scummvm/trunk/engines/made/resource.cpp	2008-05-09 07:22:22 UTC (rev 31961)
@@ -372,7 +372,7 @@
 	if (slot && slot->size > 0) {
 		size = slot->size - 62;
 		buffer = new byte[size];
-		debug(2, "ProjectReader::loadResource() %08X\n", slot->offs + 62); fflush(stdout);
+		debug(2, "ProjectReader::loadResource() %08X", slot->offs + 62);
 		_fd->seek(slot->offs + 62);
 		_fd->read(buffer, size);
 		return true;
@@ -384,8 +384,7 @@
 ResourceSlot *ProjectReader::getResourceSlot(uint32 resType, uint index) {
 	ResourceSlots *slots = _resSlots[resType];
 	if (index >= 1 && index < slots->size()) {
-		ResourceSlot *slot = &slots->operator[](index);
-		return slot;
+		return &slots->operator[](index);
 	} else {
 		return NULL;
 	}
@@ -398,22 +397,20 @@
 }
 
 void ProjectReader::addResourceToCache(ResourceSlot *slot, Resource *res) {
-	if (_cacheCount >= kMaxResourceCacheCount) {
+	if (_cacheCount >= kMaxResourceCacheCount)
 		purgeCache();
-	}
 	slot->res = res;
-	slot->refCount = 0;
+	slot->refCount = 1;
 	_cacheCount++;
 }
 
 void ProjectReader::tossResourceFromCache(ResourceSlot *slot) {
-	if (slot->res) {
+	if (slot->res)
 		slot->refCount--;
-	}
 }
 
 void ProjectReader::purgeCache() {
-	printf("ProjectReader::purgeCache()\n");
+	debug(2, "ProjectReader::purgeCache()");
 	for (ResMap::const_iterator resTypeIter = _resSlots.begin(); resTypeIter != _resSlots.end(); ++resTypeIter) {
 		ResourceSlots *slots = (*resTypeIter)._value;
 		for (ResourceSlots::iterator slotIter = slots->begin(); slotIter != slots->end(); ++slotIter) {


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