[Scummvm-git-logs] scummvm master -> afdcc9168fff9619c7e05d357f542ecc78d9c443
sev-
sev at scummvm.org
Thu Apr 2 15:55:17 UTC 2020
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:
afdcc9168f DIRECTOR: Plug memory leaks
Commit: afdcc9168fff9619c7e05d357f542ecc78d9c443
https://github.com/scummvm/scummvm/commit/afdcc9168fff9619c7e05d357f542ecc78d9c443
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-02T17:54:58+02:00
Commit Message:
DIRECTOR: Plug memory leaks
Changed paths:
engines/director/cachedmactext.cpp
engines/director/director.cpp
engines/director/frame.cpp
engines/director/lingo/lingo.cpp
engines/director/score.cpp
diff --git a/engines/director/cachedmactext.cpp b/engines/director/cachedmactext.cpp
index e35f163427..6c0b47fb88 100644
--- a/engines/director/cachedmactext.cpp
+++ b/engines/director/cachedmactext.cpp
@@ -53,6 +53,8 @@ void CachedMacText::makeMacText() {
uint color = _wm->findBestColor(_textCast->_palinfo1 & 0xff, _textCast->_palinfo2 & 0xff, _textCast->_palinfo3 & 0xff);
_macText = new Graphics::MacText(_textCast->_ftext, _wm, macFont, color, _bgcolor, _width, _align, 1);
+
+ delete macFont;
}
CachedMacText::~CachedMacText() {
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 8bac36097f..822760a74d 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -112,6 +112,7 @@ DirectorEngine::~DirectorEngine() {
delete _soundManager;
delete _lingo;
+ delete _wm;
}
Common::Error DirectorEngine::run() {
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 839498cbc0..cb1707d1e9 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -107,6 +107,7 @@ Frame::Frame(const Frame &frame) {
Frame::~Frame() {
delete _palette;
+ _drawRects.clear();
for (uint16 i = 0; i < _sprites.size(); i++)
delete _sprites[i];
@@ -842,9 +843,7 @@ void Frame::renderText(Graphics::ManagedSurface &surface, uint16 spriteId, Commo
return;
}
- Graphics::MacFont *macFont = new Graphics::MacFont(textCast->_fontId, textCast->_fontSize, textCast->_textSlant);
-
- debugC(3, kDebugText, "renderText: sprite: %d x: %d y: %d w: %d h: %d font: '%s' text: '%s'", spriteId, x, y, width, height, _vm->_wm->_fontMan->getFontName(*macFont).c_str(), Common::toPrintable(textCast->_ftext).c_str());
+ debugC(3, kDebugText, "renderText: sprite: %d x: %d y: %d w: %d h: %d fontId: '%d' text: '%s'", spriteId, x, y, width, height, textCast->_fontId, Common::toPrintable(textCast->_ftext).c_str());
uint16 boxShadow = (uint16)textCast->_boxShadow;
uint16 borderSize = (uint16)textCast->_borderSize;
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index a3f070094d..9bd50ea524 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -89,6 +89,13 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
Lingo::~Lingo() {
cleanupBuiltins();
+
+ if (_localvars)
+ for (SymbolHash::iterator it = _localvars->begin(); it != _localvars->end(); ++it)
+ delete it->_value;
+
+ for (SymbolHash::iterator it = _globalvars.begin(); it != _globalvars.end(); ++it)
+ delete it->_value;
}
ScriptContext *Lingo::getScriptContext(ScriptType type, uint16 id) {
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 23131078e0..915438fefe 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -1278,6 +1278,8 @@ void Score::loadCastInfo(Common::SeekableSubReadStreamEndian &stream, uint16 id)
ci->fileName = getString(castStrings[3]);
ci->type = castStrings[4];
+ castStrings.clear();
+
debugC(5, kDebugLoading, "Score::loadCastInfo(): CastInfo: name: '%s' directory: '%s', fileName: '%s', type: '%s'",
ci->name.c_str(), ci->directory.c_str(), ci->fileName.c_str(), ci->type.c_str());
More information about the Scummvm-git-logs
mailing list