mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-19 00:15:30 +00:00
AGI: Fix crash on exit thanks to valgrind
svn-id: r51311
This commit is contained in:
parent
aea09cb3a0
commit
e4bc0c3a18
@ -343,7 +343,7 @@ int AgiEngine::agiInit() {
|
||||
|
||||
// clear view table
|
||||
for (i = 0; i < MAX_VIEWTABLE; i++)
|
||||
memset(&_game.viewTable[i], 0, sizeof(VtEntry));
|
||||
memset(&_game.viewTable[i], 0, sizeof(struct VtEntry));
|
||||
|
||||
initWords();
|
||||
|
||||
|
@ -245,7 +245,7 @@ void SpritesMgr::objsRestoreArea(Sprite *s) {
|
||||
// WORKAROUND (see ScummVM bug #1945716)
|
||||
// When set.view command is called, current code cannot detect this situation while updating
|
||||
// Thus we force removal of the old sprite
|
||||
if (s->v->viewReplaced) {
|
||||
if (s->v && s->v->viewReplaced) {
|
||||
commitBlock(xPos, yPos, xPos + xSize, yPos + ySize);
|
||||
s->v->viewReplaced = false;
|
||||
}
|
||||
@ -679,6 +679,7 @@ void SpritesMgr::showObj(int n) {
|
||||
s.xSize = c->width;
|
||||
s.ySize = c->height;
|
||||
s.buffer = (uint8 *)malloc(s.xSize * s.ySize);
|
||||
s.v = 0;
|
||||
|
||||
objsSaveArea(&s);
|
||||
blitCel(x1, y1, 15, c, _vm->_game.views[n].agi256_2);
|
||||
|
@ -157,8 +157,7 @@ int AgiEngine::decodeView(int n) {
|
||||
return errNoLoopsInView;
|
||||
|
||||
// allocate memory for all views
|
||||
_game.views[n].loop = (ViewLoop *)
|
||||
calloc(_game.views[n].numLoops, sizeof(ViewLoop));
|
||||
_game.views[n].loop = (ViewLoop *)calloc(_game.views[n].numLoops, sizeof(ViewLoop));
|
||||
|
||||
if (_game.views[n].loop == NULL)
|
||||
return errNotEnoughMemory;
|
||||
|
Loading…
x
Reference in New Issue
Block a user