diff options
author | Borja Lorente | 2016-08-25 13:03:46 +0200 |
---|---|---|
committer | Borja Lorente | 2016-08-25 13:26:02 +0200 |
commit | 9444a1864b8a12b1f0c0495e7a948db250870137 (patch) | |
tree | feaa55e3a2d0991599d4307353d2d49015127f80 /graphics/macgui | |
parent | 2b6f1719e72d0140b74270e04d6a106e6adc5b30 (diff) | |
download | scummvm-rg350-9444a1864b8a12b1f0c0495e7a948db250870137.tar.gz scummvm-rg350-9444a1864b8a12b1f0c0495e7a948db250870137.tar.bz2 scummvm-rg350-9444a1864b8a12b1f0c0495e7a948db250870137.zip |
GRAPHICS: Fix leak in macgui border loading
Diffstat (limited to 'graphics/macgui')
-rw-r--r-- | graphics/macgui/macwindow.cpp | 6 | ||||
-rw-r--r-- | graphics/macgui/macwindowborder.cpp | 8 | ||||
-rw-r--r-- | graphics/macgui/macwindowborder.h | 4 |
3 files changed, 9 insertions, 9 deletions
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp index dbb600ba82..6405d37591 100644 --- a/graphics/macgui/macwindow.cpp +++ b/graphics/macgui/macwindow.cpp @@ -324,19 +324,19 @@ void MacWindow::loadBorder(Common::SeekableReadStream &file, bool active, int lo source = *(bmpDecoder.getSurface()); source.convertToInPlace(surface->getSupportedPixelFormat(), bmpDecoder.getPalette()); - surface->create(source.w, source.h, source.format); surface->copyFrom(source); surface->applyColorKey(255, 0, 255, false); if (active) - _macBorder.addActiveBorder(*surface); + _macBorder.addActiveBorder(surface); else - _macBorder.addInactiveBorder(*surface); + _macBorder.addInactiveBorder(surface); if (!_macBorder.hasOffsets()) _macBorder.setOffsets(lo, ro, to, bo); updateInnerDims(); + source.free(); } void MacWindow::setCloseable(bool closeable) { diff --git a/graphics/macgui/macwindowborder.cpp b/graphics/macgui/macwindowborder.cpp index b77fa35603..25832440cf 100644 --- a/graphics/macgui/macwindowborder.cpp +++ b/graphics/macgui/macwindowborder.cpp @@ -71,15 +71,15 @@ bool MacWindowBorder::hasBorder(bool active) { return active ? _activeInitialized : _inactiveInitialized; } -void MacWindowBorder::addActiveBorder(TransparentSurface &source) { +void MacWindowBorder::addActiveBorder(TransparentSurface *source) { assert(!_activeBorder); - _activeBorder = new NinePatchBitmap(&source, false); + _activeBorder = new NinePatchBitmap(source, true); _activeInitialized = true; } -void MacWindowBorder::addInactiveBorder(TransparentSurface &source) { +void MacWindowBorder::addInactiveBorder(TransparentSurface *source) { assert(!_inactiveBorder); - _inactiveBorder = new NinePatchBitmap(&source, false); + _inactiveBorder = new NinePatchBitmap(source, true); _inactiveInitialized = true; } diff --git a/graphics/macgui/macwindowborder.h b/graphics/macgui/macwindowborder.h index 54938e5143..6a1b55c5e3 100644 --- a/graphics/macgui/macwindowborder.h +++ b/graphics/macgui/macwindowborder.h @@ -86,14 +86,14 @@ public: * Will fail if there is already an active border. * @param The surface that will be displayed. */ - void addActiveBorder(TransparentSurface &source); + void addActiveBorder(TransparentSurface *source); /** * Add the given surface as the display of the border in the inactive state. * Will fail if there is already an inactive border. * @param The surface that will be displayed. */ - void addInactiveBorder(TransparentSurface &source); + void addInactiveBorder(TransparentSurface *source); /** * Accessor function for the custom offsets. |