diff options
author | Paul Gilbert | 2011-08-06 16:55:39 +1000 |
---|---|---|
committer | Paul Gilbert | 2011-08-06 16:55:39 +1000 |
commit | 9f8eb5a74086881f2818256b01fb6fb946c6420a (patch) | |
tree | a3dcfd6108eb5e5709f51bd678edb61181ca803f | |
parent | fc05b8cf1b489933d28e35d949f2de62cc0d8c6a (diff) | |
download | scummvm-rg350-9f8eb5a74086881f2818256b01fb6fb946c6420a.tar.gz scummvm-rg350-9f8eb5a74086881f2818256b01fb6fb946c6420a.tar.bz2 scummvm-rg350-9f8eb5a74086881f2818256b01fb6fb946c6420a.zip |
CGE: Re-added an explicit check in Sprite destructor against _sprite variable
The trouble is that the _sprite variable can currently be pointing to any registered sprite, and should only be freed in the destructor if it hasn't already been freed. Currently, this is best done by keeping track of whether the pointed to sprite has been already freed or not.
-rw-r--r-- | engines/cge/vga13h.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/engines/cge/vga13h.cpp b/engines/cge/vga13h.cpp index 4ad4e83ad6..b1858c0cbe 100644 --- a/engines/cge/vga13h.cpp +++ b/engines/cge/vga13h.cpp @@ -231,6 +231,9 @@ Sprite::Sprite(CGEEngine *vm, BitmapPtr *shpP) Sprite::~Sprite() { + if (_sprite == this) + _sprite = NULL; + contract(); } |