[Scummvm-cvs-logs] SF.net SVN: scummvm:[55095] scummvm/trunk/graphics/video/codecs
fuzzie at users.sourceforge.net
fuzzie at users.sourceforge.net
Sun Jan 2 15:57:49 CET 2011
Revision: 55095
http://scummvm.svn.sourceforge.net/scummvm/?rev=55095&view=rev
Author: fuzzie
Date: 2011-01-02 14:57:49 +0000 (Sun, 02 Jan 2011)
Log Message:
-----------
VIDEO: Stop leaking surface data in several codecs.
Modified Paths:
--------------
scummvm/trunk/graphics/video/codecs/cdtoons.cpp
scummvm/trunk/graphics/video/codecs/indeo3.cpp
scummvm/trunk/graphics/video/codecs/qtrle.cpp
scummvm/trunk/graphics/video/codecs/rpza.cpp
scummvm/trunk/graphics/video/codecs/rpza.h
scummvm/trunk/graphics/video/codecs/smc.cpp
scummvm/trunk/graphics/video/codecs/smc.h
Modified: scummvm/trunk/graphics/video/codecs/cdtoons.cpp
===================================================================
--- scummvm/trunk/graphics/video/codecs/cdtoons.cpp 2011-01-02 14:57:20 UTC (rev 55094)
+++ scummvm/trunk/graphics/video/codecs/cdtoons.cpp 2011-01-02 14:57:49 UTC (rev 55095)
@@ -62,6 +62,7 @@
}
CDToonsDecoder::~CDToonsDecoder() {
+ _surface->free();
delete _surface;
for (Common::HashMap<uint16, CDToonsBlock>::iterator i = _blocks.begin(); i != _blocks.end(); i++)
Modified: scummvm/trunk/graphics/video/codecs/indeo3.cpp
===================================================================
--- scummvm/trunk/graphics/video/codecs/indeo3.cpp 2011-01-02 14:57:20 UTC (rev 55094)
+++ scummvm/trunk/graphics/video/codecs/indeo3.cpp 2011-01-02 14:57:49 UTC (rev 55095)
@@ -58,6 +58,7 @@
}
Indeo3Decoder::~Indeo3Decoder() {
+ _surface->free();
delete _surface;
delete[] _iv_frame[0].the_buf;
Modified: scummvm/trunk/graphics/video/codecs/qtrle.cpp
===================================================================
--- scummvm/trunk/graphics/video/codecs/qtrle.cpp 2011-01-02 14:57:20 UTC (rev 55094)
+++ scummvm/trunk/graphics/video/codecs/qtrle.cpp 2011-01-02 14:57:49 UTC (rev 55095)
@@ -415,6 +415,7 @@
QTRLEDecoder::~QTRLEDecoder() {
_surface->free();
+ delete _surface;
}
} // End of namespace Graphics
Modified: scummvm/trunk/graphics/video/codecs/rpza.cpp
===================================================================
--- scummvm/trunk/graphics/video/codecs/rpza.cpp 2011-01-02 14:57:20 UTC (rev 55094)
+++ scummvm/trunk/graphics/video/codecs/rpza.cpp 2011-01-02 14:57:49 UTC (rev 55095)
@@ -47,6 +47,11 @@
_surface->create(width, height, _pixelFormat.bytesPerPixel);
}
+RPZADecoder::~RPZADecoder() {
+ _surface->free();
+ delete _surface;
+}
+
#define ADVANCE_BLOCK() \
pixelPtr += 4; \
if (pixelPtr >= _surface->w) { \
Modified: scummvm/trunk/graphics/video/codecs/rpza.h
===================================================================
--- scummvm/trunk/graphics/video/codecs/rpza.h 2011-01-02 14:57:20 UTC (rev 55094)
+++ scummvm/trunk/graphics/video/codecs/rpza.h 2011-01-02 14:57:49 UTC (rev 55095)
@@ -34,7 +34,7 @@
class RPZADecoder : public Codec {
public:
RPZADecoder(uint16 width, uint16 height);
- ~RPZADecoder() { delete _surface; }
+ ~RPZADecoder();
const Surface *decodeImage(Common::SeekableReadStream *stream);
PixelFormat getPixelFormat() const { return _pixelFormat; }
Modified: scummvm/trunk/graphics/video/codecs/smc.cpp
===================================================================
--- scummvm/trunk/graphics/video/codecs/smc.cpp 2011-01-02 14:57:20 UTC (rev 55094)
+++ scummvm/trunk/graphics/video/codecs/smc.cpp 2011-01-02 14:57:49 UTC (rev 55095)
@@ -52,6 +52,11 @@
_surface->create(width, height, 1);
}
+SMCDecoder::~SMCDecoder() {
+ _surface->free();
+ delete _surface;
+}
+
const Graphics::Surface *SMCDecoder::decodeImage(Common::SeekableReadStream *stream) {
byte *pixels = (byte *)_surface->pixels;
Modified: scummvm/trunk/graphics/video/codecs/smc.h
===================================================================
--- scummvm/trunk/graphics/video/codecs/smc.h 2011-01-02 14:57:20 UTC (rev 55094)
+++ scummvm/trunk/graphics/video/codecs/smc.h 2011-01-02 14:57:49 UTC (rev 55095)
@@ -40,7 +40,7 @@
class SMCDecoder : public Codec {
public:
SMCDecoder(uint16 width, uint16 height);
- ~SMCDecoder() { delete _surface; }
+ ~SMCDecoder();
const Surface *decodeImage(Common::SeekableReadStream *stream);
PixelFormat getPixelFormat() const { return PixelFormat::createFormatCLUT8(); }
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