]> Dogcows Code - chaz/openbox/commitdiff
When icons had a very small aspect ratio, we crashed, don't.
authorMikael Magnusson <mikachu@comhem.se>
Fri, 28 Mar 2008 20:01:46 +0000 (21:01 +0100)
committerMikael Magnusson <mikachu@comhem.se>
Tue, 15 Apr 2008 15:59:22 +0000 (17:59 +0200)
render/image.c

index be3e46be55e968ce9bc0d331f431e8b2c0dd3e81..964864371825bb93c081de801d787d81d44a2a21 100644 (file)
@@ -124,6 +124,12 @@ static RrImagePic* ResizeImage(RrPixel32 *src,
     gulong ratioX, ratioY;
     gulong aspectW, aspectH;
 
+    /* XXX should these variables be ensured to not be zero in the callers? */
+    srcW = srcW ? srcW : 1;
+    srcH = srcH ? srcH : 1;
+    dstW = dstW ? dstW : 1;
+    dstH = dstH ? dstH : 1;
+
     /* keep the aspect ratio */
     aspectW = dstW;
     aspectH = (gint)(dstW * ((gdouble)srcH / srcW));
@@ -131,11 +137,11 @@ static RrImagePic* ResizeImage(RrPixel32 *src,
         aspectH = dstH;
         aspectW = (gint)(dstH * ((gdouble)srcW / srcH));
     }
-    dstW = aspectW;
-    dstH = aspectH;
+    dstW = aspectW ? aspectW : 1;
+    dstH = aspectH ? aspectH : 1;
 
     if (srcW == dstW && srcH == dstH)
-        return NULL; /* no scaling needed ! */
+        return NULL; /* no scaling needed! */
 
     dststart = dst = g_new(RrPixel32, dstW * dstH);
 
This page took 0.025453 seconds and 4 git commands to generate.