diff options
| author | Mikael Magnusson <mikachu@comhem.se> | 2008-03-28 21:01:46 +0100 |
|---|---|---|
| committer | Mikael Magnusson <mikachu@comhem.se> | 2008-04-15 17:59:22 +0200 |
| commit | d47d5a2801fb2bb3a23d9a53267d33a679109551 (patch) | |
| tree | 817dec85231ed75df95d1dc4fb0495179df671c6 /render/image.c | |
| parent | 0e92465751019197a19680c56984664afb7c7999 (diff) | |
When icons had a very small aspect ratio, we crashed, don't.
Diffstat (limited to 'render/image.c')
| -rw-r--r-- | render/image.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/render/image.c b/render/image.c index be3e46be..96486437 100644 --- a/render/image.c +++ b/render/image.c @@ -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); |
