From 6966e4498da9f5bdba5543395fd40149fe8a7a94 Mon Sep 17 00:00:00 2001 From: Gregory Montoir Date: Tue, 10 Jan 2006 21:10:48 +0000 Subject: Free the palette before re-using a 'cached cursor' slot. svn-id: r19975 --- scumm/resource_v7he.cpp | 10 +++++----- 1 file 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); -- cgit v1.2.3