From 3199384107eb2a6efcca80ed1fefb51df86f87a7 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 25 Aug 2013 16:27:27 +0300 Subject: fix crash with missing resized image in desktop. --- src/gui/widgets/desktop.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/gui/widgets/desktop.cpp') diff --git a/src/gui/widgets/desktop.cpp b/src/gui/widgets/desktop.cpp index bee1c76e6..7daff45f0 100644 --- a/src/gui/widgets/desktop.cpp +++ b/src/gui/widgets/desktop.cpp @@ -139,7 +139,10 @@ void Desktop::setBestFittingWallpaper() if (nWallPaper) { if (mWallpaper) + { mWallpaper->decRef(); + mWallpaper = nullptr; + } const gcn::Rectangle &rect = mDimension; const int width = rect.width; @@ -153,12 +156,16 @@ void Desktop::setBestFittingWallpaper() Image *const newRsclWlPpr = ResourceManager::getInstance() ->getRescaled(nWallPaper, width, height); - // We replace the resource in the resource manager - nWallPaper->decRef(); if (newRsclWlPpr) + { + // We replace the resource in the resource manager + nWallPaper->decRef(); mWallpaper = newRsclWlPpr; + } else + { mWallpaper = nWallPaper; + } } else { -- cgit v1.2.3-60-g2f50