[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