From d5c36a98971ab52d40c183a7e139bce99f4ef2a3 Mon Sep 17 00:00:00 2001 From: "mark%moxienet.com" Date: Thu, 6 Apr 2006 20:11:09 +0000 Subject: [PATCH] 332704 Divide-by-zero causes crash on x86 Mac when viewing SVG. Check for /0. r=jhpedemonte r=vlad sr=shaver git-svn-id: svn://10.0.0.236/trunk@193728 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/gfx/src/mac/nsImageMac.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mozilla/gfx/src/mac/nsImageMac.cpp b/mozilla/gfx/src/mac/nsImageMac.cpp index 72932bfe9c7..e8b0712e131 100644 --- a/mozilla/gfx/src/mac/nsImageMac.cpp +++ b/mozilla/gfx/src/mac/nsImageMac.cpp @@ -579,9 +579,17 @@ nsImageMac::LockImagePixels(PRBool aMaskPixels) PRUint8 alpha = *tmp++; mAlphaBits[alphaRowStart + x] = alpha; PRUint32 offset = rowStart + COMPS_PER_PIXEL * x; - mImageBits[offset + 1] = ((PRUint32) *tmp++) * 255 / alpha; - mImageBits[offset + 2] = ((PRUint32) *tmp++) * 255 / alpha; - mImageBits[offset + 3] = ((PRUint32) *tmp++) * 255 / alpha; + if (alpha) { + mImageBits[offset + 1] = ((PRUint32) *tmp++) * 255 / alpha; + mImageBits[offset + 2] = ((PRUint32) *tmp++) * 255 / alpha; + mImageBits[offset + 3] = ((PRUint32) *tmp++) * 255 / alpha; + } + else { + tmp += 3; + mImageBits[offset + 1] = + mImageBits[offset + 2] = + mImageBits[offset + 3] = 0; + } } } break;