Fix crash caused by null texture in GUI formspec/HUD.
authorAaron Suen <warr1024@gmail.com>
Thu, 2 Apr 2015 12:58:18 +0000 (08:58 -0400)
committerCraig Robbins <kde.psych@gmail.com>
Thu, 2 Apr 2015 13:56:46 +0000 (23:56 +1000)
src/guiscalingfilter.cpp

index 33e0648ad3a5e7cc9225de1a9afffa3318403099..26a2265a8ab9bbc38c98cf02b3a3a267a59ce377 100644 (file)
@@ -72,7 +72,8 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver,
                video::ITexture *src, const core::rect<s32> &srcrect,
                const core::rect<s32> &destrect)
 {
-
+       if (src == NULL)
+               return src;
        if (!g_settings->getBool("gui_scaling_filter"))
                return src;
 
@@ -139,6 +140,8 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver,
 video::ITexture *guiScalingImageButton(video::IVideoDriver *driver,
                video::ITexture *src, s32 width, s32 height)
 {
+       if (src == NULL)
+               return src;
        return guiScalingResizeCached(driver, src,
                core::rect<s32>(0, 0, src->getSize().Width, src->getSize().Height),
                core::rect<s32>(0, 0, width, height));
@@ -154,6 +157,8 @@ void draw2DImageFilterScaled(video::IVideoDriver *driver, video::ITexture *txr,
 {
        // Attempt to pre-scale image in software in high quality.
        video::ITexture *scaled = guiScalingResizeCached(driver, txr, srcrect, destrect);
+       if (scaled == NULL)
+               return;
 
        // Correct source rect based on scaled image.
        const core::rect<s32> mysrcrect = (scaled != txr)