From 2a60ddfd750a720a99a040f0094afa67f9de8429 Mon Sep 17 00:00:00 2001 From: Thomas Fach-Pedersen Date: Fri, 30 May 2014 13:54:19 -0700 Subject: [PATCH] BLADERUNNER: Fix memory leaks in Image --- engines/bladerunner/image.cpp | 5 +++++ engines/bladerunner/image.h | 1 + 2 files changed, 6 insertions(+) diff --git a/engines/bladerunner/image.cpp b/engines/bladerunner/image.cpp index 42070bc84a07..157e443384e3 100644 --- a/engines/bladerunner/image.cpp +++ b/engines/bladerunner/image.cpp @@ -34,6 +34,10 @@ Image::Image(BladeRunnerEngine *vm) { } +Image::~Image() { + _surface.free(); +} + bool Image::open(const Common::String &name) { Common::SeekableReadStream *stream = _vm->getResourceStream(name); if (!stream) { @@ -67,6 +71,7 @@ bool Image::open(const Common::String &name) { _surface.init(width, height, 2*width, data, pixelFormat); delete[] buf; + delete stream; return true; } diff --git a/engines/bladerunner/image.h b/engines/bladerunner/image.h index 3980ff4c3c2b..75991d0f55e3 100644 --- a/engines/bladerunner/image.h +++ b/engines/bladerunner/image.h @@ -37,6 +37,7 @@ class Image { Graphics::Surface _surface; public: Image(BladeRunnerEngine *vm); + ~Image(); bool open(const Common::String &name); void copyToSurface(Graphics::Surface *surface) const;