[Scummvm-cvs-logs] SF.net SVN: scummvm:[55740] scummvm/trunk/engines/sci/graphics
lskovlun at users.sourceforge.net
lskovlun at users.sourceforge.net
Wed Feb 2 22:05:38 CET 2011
Revision: 55740
http://scummvm.svn.sourceforge.net/scummvm/?rev=55740&view=rev
Author: lskovlun
Date: 2011-02-02 21:05:38 +0000 (Wed, 02 Feb 2011)
Log Message:
-----------
SCI: Fix memory leaks in GfxRobot
Modified Paths:
--------------
scummvm/trunk/engines/sci/graphics/robot.cpp
scummvm/trunk/engines/sci/graphics/robot.h
Modified: scummvm/trunk/engines/sci/graphics/robot.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/robot.cpp 2011-02-02 19:56:24 UTC (rev 55739)
+++ scummvm/trunk/engines/sci/graphics/robot.cpp 2011-02-02 21:05:38 UTC (rev 55740)
@@ -68,10 +68,7 @@
}
GfxRobot::~GfxRobot() {
- delete[] _resourceData;
- delete[] _imageStart;
- delete[] _audioStart;
- delete[] _audioLen;
+ freeData();
}
void GfxRobot::init(GuiResourceId resourceId, uint16 x, uint16 y) {
@@ -174,6 +171,7 @@
if (_curFrame == _frameCount) {
// End of robot video, restore palette
g_system->setPalette(_savedPal, 0, 256);
+ freeData();
_resourceId = -1;
}
}
@@ -302,7 +300,13 @@
}
}
-
+void GfxRobot::freeData()
+{
+ delete[] _resourceData; _resourceData = 0;
+ delete[] _imageStart; _imageStart = 0;
+ delete[] _audioStart; _audioStart = 0;
+ delete[] _audioLen; _audioLen = 0;
+}
#endif
} // End of namespace Sci
Modified: scummvm/trunk/engines/sci/graphics/robot.h
===================================================================
--- scummvm/trunk/engines/sci/graphics/robot.h 2011-02-02 19:56:24 UTC (rev 55739)
+++ scummvm/trunk/engines/sci/graphics/robot.h 2011-02-02 21:05:38 UTC (rev 55740)
@@ -51,6 +51,7 @@
void getFrameRect(int frame, Common::Rect &rect); // Not sure what to use this for yet
int getFrameScale(int frame); // Scale factor (multiplied by 100). More like custom height, but why use a percentage for it?
void setPalette();
+ void freeData();
ResourceManager *_resMan;
GfxScreen *_screen;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list