[Scummvm-git-logs] scummvm master -> eb1c9eb58b64a3959f495c3abb5a35fc65bed57a
sev-
sev at scummvm.org
Thu Apr 2 15:25:22 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:
eb1c9eb58b DIRECTOR: Plug memory leaks
Commit: eb1c9eb58b64a3959f495c3abb5a35fc65bed57a
https://github.com/scummvm/scummvm/commit/eb1c9eb58b64a3959f495c3abb5a35fc65bed57a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-02T17:25:05+02:00
Commit Message:
DIRECTOR: Plug memory leaks
Changed paths:
engines/director/cast.cpp
engines/director/cast.h
engines/director/score.cpp
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 58950039a7..d610c33757 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -22,6 +22,7 @@
#include "common/substream.h"
#include "graphics/surface.h"
+#include "image/image_decoder.h"
#include "director/director.h"
#include "director/cachedmactext.h"
@@ -35,12 +36,14 @@ namespace Director {
Cast::Cast() {
_type = kCastTypeNull;
_surface = nullptr;
+ _img = nullptr;
_modified = true;
}
Cast::~Cast() {
- delete _surface;
+ if (_img)
+ delete _img;
}
BitmapCast::BitmapCast(Common::ReadStreamEndian &stream, uint32 castTag, uint16 version) {
@@ -250,11 +253,14 @@ TextCast::TextCast(Common::ReadStreamEndian &stream, uint16 version, int32 bgcol
}
_cachedMacText = new CachedMacText(this, _bgcolor, version, -1, g_director->_wm);
- // TODO Destroy me
_modified = false;
}
+TextCast::~TextCast() {
+ delete _cachedMacText;
+}
+
void TextCast::importStxt(const Stxt *stxt) {
_fontId = stxt->_fontId;
_textSlant = stxt->_textSlant;
diff --git a/engines/director/cast.h b/engines/director/cast.h
index 51ae805adb..e07fbda4ee 100644
--- a/engines/director/cast.h
+++ b/engines/director/cast.h
@@ -35,6 +35,10 @@ class SeekableReadStream;
class ReadStreamEndian;
}
+namespace Image {
+class ImageDecoder;
+}
+
namespace Director {
class Stxt;
@@ -52,6 +56,7 @@ public:
Common::Array<Resource> _children;
const Graphics::Surface *_surface;
+ Image::ImageDecoder *_img;
bool _modified;
};
@@ -97,6 +102,7 @@ public:
class TextCast : public Cast {
public:
TextCast(Common::ReadStreamEndian &stream, uint16 version, int32 bgcolor);
+ virtual ~TextCast();
void setText(const char *text);
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index b3ea3d0559..2854bb2ace 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -373,6 +373,7 @@ void Score::loadSpriteImages(bool isSharedCast) {
delete pic;
bitmapCast->_surface = img->getSurface();
+ bitmapCast->_img = img;
debugC(4, kDebugImages, "Score::loadSpriteImages(): id: %d, w: %d, h: %d, flags: %x, bytes: %x, bpp: %d clut: %x",
imgId, w, h, bitmapCast->_flags, bitmapCast->_bytes, bitmapCast->_bitsPerPixel, bitmapCast->_clut);
More information about the Scummvm-git-logs
mailing list