aboutsummaryrefslogtreecommitdiff
path: root/graphics/macgui
diff options
context:
space:
mode:
authorBorja Lorente2016-08-25 13:03:46 +0200
committerBorja Lorente2016-08-25 13:26:02 +0200
commit9444a1864b8a12b1f0c0495e7a948db250870137 (patch)
treefeaa55e3a2d0991599d4307353d2d49015127f80 /graphics/macgui
parent2b6f1719e72d0140b74270e04d6a106e6adc5b30 (diff)
downloadscummvm-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.cpp6
-rw-r--r--graphics/macgui/macwindowborder.cpp8
-rw-r--r--graphics/macgui/macwindowborder.h4
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.