diff options
| author | Benjamin Haisch | 2008-05-09 07:22:22 +0000 | 
|---|---|---|
| committer | Benjamin Haisch | 2008-05-09 07:22:22 +0000 | 
| commit | 55e4b05b185622194d644f5b27490e33cda8c483 (patch) | |
| tree | 8ef044d5dffc9f2ecc184725355aade8e460563c /engines/made/resource.cpp | |
| parent | 420d376a9004a60c0443c74c07554506ad2344c6 (diff) | |
| download | scummvm-rg350-55e4b05b185622194d644f5b27490e33cda8c483.tar.gz scummvm-rg350-55e4b05b185622194d644f5b27490e33cda8c483.tar.bz2 scummvm-rg350-55e4b05b185622194d644f5b27490e33cda8c483.zip | |
- Fixed a bug which sometimes caused crashes when ProjectReader::purgeCache() was called
- Some cleanup
svn-id: r31961
Diffstat (limited to 'engines/made/resource.cpp')
| -rw-r--r-- | engines/made/resource.cpp | 15 | 
1 files changed, 6 insertions, 9 deletions
| diff --git a/engines/made/resource.cpp b/engines/made/resource.cpp index 7151f2424a..8c9125127a 100644 --- a/engines/made/resource.cpp +++ b/engines/made/resource.cpp @@ -372,7 +372,7 @@ bool ProjectReader::loadResource(ResourceSlot *slot, byte *&buffer, uint32 &size  	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 @@ bool ProjectReader::loadResource(ResourceSlot *slot, byte *&buffer, uint32 &size  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 @@ Resource *ProjectReader::getResourceFromCache(ResourceSlot *slot) {  }  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) { | 
