aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Montoir2006-01-10 21:10:48 +0000
committerGregory Montoir2006-01-10 21:10:48 +0000
commit6966e4498da9f5bdba5543395fd40149fe8a7a94 (patch)
treed6f03c25c26ae41c51d390bcecb19e2c3f9252a1
parent1eb9b6516d864f5058040d6707c8be719829cfd3 (diff)
downloadscummvm-rg350-6966e4498da9f5bdba5543395fd40149fe8a7a94.tar.gz
scummvm-rg350-6966e4498da9f5bdba5543395fd40149fe8a7a94.tar.bz2
scummvm-rg350-6966e4498da9f5bdba5543395fd40149fe8a7a94.zip
Free the palette before re-using a 'cached cursor' slot.
svn-id: r19975
-rw-r--r--scumm/resource_v7he.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/scumm/resource_v7he.cpp b/scumm/resource_v7he.cpp
index 89431825da..7b27866058 100644
--- a/scumm/resource_v7he.cpp
+++ b/scumm/resource_v7he.cpp
@@ -49,10 +49,10 @@ ResExtractor::~ResExtractor() {
CachedCursor *cc = &_cursorCache[i];
if (cc->valid) {
free(cc->bitmap);
- cc->bitmap = NULL;
- cc->valid = false;
+ free(cc->palette);
}
}
+ memset(_cursorCache, 0, sizeof(_cursorCache));
}
ResExtractor::CachedCursor *ResExtractor::findCachedCursor(int id) {
@@ -81,8 +81,8 @@ ResExtractor::CachedCursor *ResExtractor::getCachedCursorSlot() {
}
assert(r);
free(r->bitmap);
- r->bitmap = NULL;
- r->valid = false;
+ free(r->palette);
+ memset(r, 0, sizeof(CachedCursor));
return r;
}
@@ -106,7 +106,7 @@ void ResExtractor::setCursor(int id) {
}
if (_vm->_system->hasFeature(OSystem::kFeatureCursorHasPalette) && cc->palette)
- _vm->_system->setCursorPalette(cc->palette, 0, cc->palSize);
+ _vm->_system->setCursorPalette(cc->palette, 0, cc->palSize);
_vm->setCursorHotspot(cc->hotspot_x, cc->hotspot_y);
_vm->setCursorFromBuffer(cc->bitmap, cc->w, cc->h, cc->w);