From 11ebdcb5e0f25a6030a3ee3419d823aef6622980 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 3 Jun 2014 20:18:48 +0200 Subject: CGE2: nullify some pointers --- engines/cge2/bitmap.cpp | 5 ++++- engines/cge2/cge2_main.cpp | 2 ++ engines/cge2/hero.cpp | 1 + engines/cge2/snail.cpp | 1 + engines/cge2/sound.cpp | 4 ++-- engines/cge2/spare.cpp | 1 + engines/cge2/text.cpp | 2 +- engines/cge2/vga13h.cpp | 26 ++++++++++++++++++-------- 8 files changed, 30 insertions(+), 12 deletions(-) diff --git a/engines/cge2/bitmap.cpp b/engines/cge2/bitmap.cpp index dfc5bcadd2..39883601a1 100644 --- a/engines/cge2/bitmap.cpp +++ b/engines/cge2/bitmap.cpp @@ -124,6 +124,8 @@ Bitmap::~Bitmap() { void Bitmap::release() { free(_m); delete[] _v; + _m = nullptr; + _v = nullptr; } Bitmap &Bitmap::operator=(const Bitmap &bmp) { @@ -137,6 +139,7 @@ Bitmap &Bitmap::operator=(const Bitmap &bmp) { _map = 0; _vm = bmp._vm; delete[] _v; + _v = nullptr; if (v0 == NULL) { _v = NULL; @@ -169,7 +172,7 @@ BitmapPtr Bitmap::code() { if (_v) { // old X-map exists, so remove it delete[] _v; - _v = NULL; + _v = nullptr; } while (true) { // at most 2 times: for (V == NULL) & for allocated block; diff --git a/engines/cge2/cge2_main.cpp b/engines/cge2/cge2_main.cpp index 4fb0b2981e..696b840eb8 100644 --- a/engines/cge2/cge2_main.cpp +++ b/engines/cge2/cge2_main.cpp @@ -579,6 +579,7 @@ void CGE2Engine::loadGame() { h = new Hero(this); *(Sprite*)h = *s; delete s; + s = nullptr; h->expand(); _spare->update(h); } @@ -593,6 +594,7 @@ void CGE2Engine::loadGame() { h = new Hero(this); *(Sprite*)h = *s; delete s; + s = nullptr; h->expand(); _spare->update(h); } diff --git a/engines/cge2/hero.cpp b/engines/cge2/hero.cpp index a6c1849d60..030020ebb9 100644 --- a/engines/cge2/hero.cpp +++ b/engines/cge2/hero.cpp @@ -194,6 +194,7 @@ Sprite *Hero::expand() { // It's very similar to Sprite's expand, but doesn't bo bmp[i] = &_dim[0][i]; setShapeList(bmp, shpcnt); delete[] bmp; + bmp = nullptr; } } _reachStart = atoi(_vm->token(text)); diff --git a/engines/cge2/snail.cpp b/engines/cge2/snail.cpp index e355c44348..8de2e130c8 100644 --- a/engines/cge2/snail.cpp +++ b/engines/cge2/snail.cpp @@ -527,6 +527,7 @@ void CGE2Engine::snGhost(Bitmap *bmp) { bmp->_v = nullptr; bmp->_b = nullptr; delete bmp; + bmp = nullptr; } void CGE2Engine::hide1(Sprite *spr) { diff --git a/engines/cge2/sound.cpp b/engines/cge2/sound.cpp index 9f5ec2bb6c..b497ebf27b 100644 --- a/engines/cge2/sound.cpp +++ b/engines/cge2/sound.cpp @@ -121,7 +121,7 @@ Fx::~Fx() { void Fx::clear() { if (_current) delete _current; - _current = NULL; + _current = nullptr; } Common::String Fx::name(int ref, int sub) { @@ -186,7 +186,7 @@ void MusicPlayer::killMidi() { Audio::MidiPlayer::stop(); free(_data); - _data = NULL; + _data = nullptr; } void MusicPlayer::loadMidi(int ref) { diff --git a/engines/cge2/spare.cpp b/engines/cge2/spare.cpp index 043122199c..445247177d 100644 --- a/engines/cge2/spare.cpp +++ b/engines/cge2/spare.cpp @@ -90,6 +90,7 @@ void Spare::dispose(Sprite *spr) { if (spr == _container[i]) { _container.remove_at(i); delete spr; + spr = nullptr; break; } } diff --git a/engines/cge2/text.cpp b/engines/cge2/text.cpp index 2f8e9b4011..554d6ba88c 100644 --- a/engines/cge2/text.cpp +++ b/engines/cge2/text.cpp @@ -85,7 +85,7 @@ void Text::clear() { if (p->_ref) { p->_ref = 0; delete[] p->_text; - p->_text = NULL; + p->_text = nullptr; } } } diff --git a/engines/cge2/vga13h.cpp b/engines/cge2/vga13h.cpp index bc2e07c0eb..ded90aeaef 100644 --- a/engines/cge2/vga13h.cpp +++ b/engines/cge2/vga13h.cpp @@ -170,7 +170,7 @@ void Sprite::setName(char *newName) { if (_ext->_name) { delete[] _ext->_name; - _ext->_name = NULL; + _ext->_name = nullptr; } if (newName) { _ext->_name = new char[strlen(newName) + 1]; @@ -394,25 +394,33 @@ Sprite *Sprite::contract() { if (notify) notify(); - if (e->_name) + if (e->_name) { delete[] e->_name; + e->_name = nullptr; + } if (e->_shpList) { for (int i = 0; i < _shpCnt; i++) e->_shpList[i]->release(); delete[] e->_shpList; + e->_shpList = nullptr; } if (e->_seq) { if (e->_seq == _stdSeq8) _seqCnt = 0; - else + else { delete[] e->_seq; + e->_seq = nullptr; + } } - for (int i = 0; i < kActions; i++) - if (e->_actions[i]) + for (int i = 0; i < kActions; i++) { + if (e->_actions[i]) { delete[] e->_actions[i]; + e->_actions[i]; + } + } _ext = nullptr; @@ -479,9 +487,9 @@ void Sprite::killXlat() { uint8 *m = (*_ext->_shpList)->_m; free(m); - + for (BitmapPtr *b = _ext->_shpList; *b; b++) - (*b)->_m = NULL; + (*b)->_m = nullptr; _flags._xlat = false; } @@ -677,8 +685,10 @@ Queue::~Queue() { void Queue::clear() { while (_head) { Sprite *s = remove(_head); - if (s->_flags._kill) + if (s->_flags._kill) { delete s; + s = nullptr; + } } } -- cgit v1.2.3