[Scummvm-git-logs] scummvm master -> a62d29ab86b6c149051296adeb5c2be3812daac0
sev-
sev at scummvm.org
Tue Dec 13 18:59:24 CET 2016
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a62d29ab86 FULLPIPE: Revert memory leak fixing as that introduced tons of regressions
Commit: a62d29ab86b6c149051296adeb5c2be3812daac0
https://github.com/scummvm/scummvm/commit/a62d29ab86b6c149051296adeb5c2be3812daac0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-12-13T18:15:41+01:00
Commit Message:
FULLPIPE: Revert memory leak fixing as that introduced tons of regressions
Changed paths:
engines/fullpipe/fullpipe.cpp
engines/fullpipe/gameloader.cpp
engines/fullpipe/gameloader.h
engines/fullpipe/gfx.cpp
engines/fullpipe/gfx.h
engines/fullpipe/input.cpp
engines/fullpipe/motion.cpp
engines/fullpipe/motion.h
engines/fullpipe/statesaver.cpp
engines/fullpipe/statics.cpp
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp
index 41a4251..10c1744 100644
--- a/engines/fullpipe/fullpipe.cpp
+++ b/engines/fullpipe/fullpipe.cpp
@@ -214,9 +214,6 @@ FullpipeEngine::~FullpipeEngine() {
delete _soundStream2;
delete _soundStream3;
delete _soundStream4;
- delete _floaters;
- delete _aniHandler;
- delete _behaviorManager;
}
void FullpipeEngine::initialize() {
diff --git a/engines/fullpipe/gameloader.cpp b/engines/fullpipe/gameloader.cpp
index 28a3964..aebf73d 100644
--- a/engines/fullpipe/gameloader.cpp
+++ b/engines/fullpipe/gameloader.cpp
@@ -85,6 +85,23 @@ GameLoader::~GameLoader() {
g_fp->_gameLoader = 0;
+ for (uint i = 0; i < _sc2array.size(); i++) {
+ if (_sc2array[i]._defPicAniInfos)
+ free(_sc2array[i]._defPicAniInfos);
+
+ if (_sc2array[i]._picAniInfos)
+ free(_sc2array[i]._picAniInfos);
+
+ if (_sc2array[i]._motionController)
+ delete _sc2array[i]._motionController;
+
+ if (_sc2array[i]._data1)
+ free(_sc2array[i]._data1);
+
+ if (_sc2array[i]._entranceData)
+ free(_sc2array[i]._entranceData);
+ }
+
delete _gameVar;
_gameVar = 0;
@@ -600,23 +617,6 @@ Sc2::Sc2() {
_entranceDataCount = 0;
}
-Sc2::~Sc2() {
- delete _motionController;
- free(_data1);
-
- for (int i = 0; i < _defPicAniInfosCount; i++)
- delete _defPicAniInfos[i];
- free(_defPicAniInfos);
-
- for (int i = 0; i < _entranceDataCount; i++)
- delete _entranceData[i];
- free(_entranceData);
-
- for (int i = 0; i < _picAniInfosCount; i++)
- delete _picAniInfos[i];
- free(_picAniInfos);
-}
-
bool Sc2::load(MfcArchive &file) {
debugC(5, kDebugLoading, "Sc2::load()");
diff --git a/engines/fullpipe/gameloader.h b/engines/fullpipe/gameloader.h
index 52811d8..a6c2416 100644
--- a/engines/fullpipe/gameloader.h
+++ b/engines/fullpipe/gameloader.h
@@ -57,7 +57,6 @@ class Sc2 : public CObject {
public:
Sc2();
- virtual ~Sc2();
virtual bool load(MfcArchive &file);
};
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp
index 0f9ac80..4dec4b6 100644
--- a/engines/fullpipe/gfx.cpp
+++ b/engines/fullpipe/gfx.cpp
@@ -45,9 +45,6 @@ Background::Background() {
}
Background::~Background() {
- for (uint i = 1; i < _picObjList.size(); i++)
- delete _picObjList[i];
-
_picObjList.clear();
for (int i = 0; i < _bigPictureArray1Count; i++) {
@@ -58,8 +55,6 @@ Background::~Background() {
}
free(_bigPictureArray);
-
- free(_bgname);
}
bool Background::load(MfcArchive &file) {
@@ -483,13 +478,12 @@ void Picture::freePicture() {
if (_bitmap) {
if (testFlags() && !_field_54) {
freeData();
- delete _bitmap;
+ //free(_bitmap);
_bitmap = 0;
}
}
if (_bitmap) {
- delete _bitmap;
_bitmap = 0;
_data = 0;
}
@@ -607,8 +601,6 @@ void Picture::getDibInfo() {
_bitmap->decode((int32 *)(_paletteData ? _paletteData : g_fp->_globalPalette));
_bitmap->_pixels = 0;
-
- delete s;
}
Bitmap *Picture::getPixelData() {
@@ -779,8 +771,6 @@ Bitmap::Bitmap() {
_flags = 0;
_surface = 0;
_flipping = Graphics::FLIP_NONE;
-
- _skipDelete = false;
}
Bitmap::Bitmap(Bitmap *src) {
@@ -794,21 +784,14 @@ Bitmap::Bitmap(Bitmap *src) {
_pixels = src->_pixels;
_surface = new Graphics::TransparentSurface(*src->_surface);
_flipping = src->_flipping;
-
- _skipDelete = true;
}
Bitmap::~Bitmap() {
if (_pixels)
free(_pixels);
- if (!_skipDelete) {
- if (_surface)
- _surface->free();
- delete _surface;
- }
-
- _surface = 0;
+ _surface->free();
+ delete _surface;
_pixels = 0;
}
diff --git a/engines/fullpipe/gfx.h b/engines/fullpipe/gfx.h
index f8396c9..566586f 100644
--- a/engines/fullpipe/gfx.h
+++ b/engines/fullpipe/gfx.h
@@ -40,7 +40,6 @@ struct Bitmap {
int _flags;
Graphics::TransparentSurface *_surface;
int _flipping;
- bool _skipDelete;
Bitmap();
Bitmap(Bitmap *src);
diff --git a/engines/fullpipe/input.cpp b/engines/fullpipe/input.cpp
index 4bcc2ac..5573562 100644
--- a/engines/fullpipe/input.cpp
+++ b/engines/fullpipe/input.cpp
@@ -56,9 +56,6 @@ InputController::~InputController() {
removeMessageHandler(126, -1);
g_fp->_inputController = 0;
-
- for (uint i = 0; i < _cursorsArray.size(); i++)
- delete _cursorsArray[i];
}
void InputController::setInputDisabled(bool state) {
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index 13fe8d0..05f13d4 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -105,11 +105,6 @@ MovGraphLink *MotionController::getLinkByName(const char *name) {
return 0;
}
-MctlCompound::~MctlCompound() {
- for (uint i = 0; i < _motionControllers.size(); i++)
- delete _motionControllers[i];
-}
-
bool MctlCompound::load(MfcArchive &file) {
debugC(5, kDebugLoading, "MctlCompound::load()");
diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h
index d1c5901..4eecd98 100644
--- a/engines/fullpipe/motion.h
+++ b/engines/fullpipe/motion.h
@@ -106,7 +106,6 @@ public:
MctlCompoundArray _motionControllers;
MctlCompound() { _objtype = kObjTypeMctlCompound; }
- virtual ~MctlCompound();
virtual bool load(MfcArchive &file);
diff --git a/engines/fullpipe/statesaver.cpp b/engines/fullpipe/statesaver.cpp
index 5eb08fe..7fb56f0 100644
--- a/engines/fullpipe/statesaver.cpp
+++ b/engines/fullpipe/statesaver.cpp
@@ -55,7 +55,7 @@ bool GameLoader::writeSavegame(Scene *sc, const char *fname) {
header.updateCounter = _updateCounter;
header.unkField = 1;
- Common::MemoryWriteStreamDynamic stream(DisposeAfterUse::YES);
+ Common::MemoryWriteStreamDynamic stream;
MfcArchive *archive = new MfcArchive(&stream);
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index cc94f54..ece4f43 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -154,8 +154,6 @@ StaticANIObject::~StaticANIObject() {
_staticsList.clear();
- freeMovementsPixelData();
-
for (uint i = 0; i < _movements.size(); i++)
delete _movements[i];
@@ -574,8 +572,6 @@ void Movement::draw(bool flipFlag, int angle) {
}
}
}
-
- delete bmp;
}
void StaticANIObject::loadMovementsPixelData() {
@@ -1543,7 +1539,7 @@ Movement::~Movement() {
for (uint i = 0; i < _dynamicPhases.size(); i++)
delete _framePosOffsets[i];
- if (!_currMovement) {
+ if (!_currMovement ) {
if (_updateFlag1)
_dynamicPhases.remove_at(0);
More information about the Scummvm-git-logs
mailing list