From dab71982f2fc0adfba4d79d51145fbded8cb3235 Mon Sep 17 00:00:00 2001 From: "Olli.Pettay%helsinki.fi" Date: Sun, 5 Aug 2007 13:24:30 +0000 Subject: [PATCH] Bug 389694, r+sr=jst, a=dbaron git-svn-id: svn://10.0.0.236/trunk@231506 18797224-902f-48f8-a5cc-f745e15eee43 --- .../html/document/src/nsImageDocument.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/mozilla/content/html/document/src/nsImageDocument.cpp b/mozilla/content/html/document/src/nsImageDocument.cpp index 1c12bb59b13..1642ef56b2b 100644 --- a/mozilla/content/html/document/src/nsImageDocument.cpp +++ b/mozilla/content/html/document/src/nsImageDocument.cpp @@ -406,12 +406,14 @@ nsImageDocument::GetImageRequest(imgIRequest** aImageRequest) NS_IMETHODIMP nsImageDocument::ShrinkToFit() { + // Keep image content alive while changing the attributes. + nsCOMPtr imageContent = mImageContent; nsCOMPtr image = do_QueryInterface(mImageContent); image->SetWidth(PR_MAX(1, NSToCoordFloor(GetRatio() * mImageWidth))); image->SetHeight(PR_MAX(1, NSToCoordFloor(GetRatio() * mImageHeight))); - mImageContent->SetAttr(kNameSpaceID_None, nsGkAtoms::style, - NS_LITERAL_STRING("cursor: -moz-zoom-in"), PR_TRUE); + imageContent->SetAttr(kNameSpaceID_None, nsGkAtoms::style, + NS_LITERAL_STRING("cursor: -moz-zoom-in"), PR_TRUE); mImageIsResized = PR_TRUE; @@ -459,15 +461,17 @@ nsImageDocument::RestoreImageTo(PRInt32 aX, PRInt32 aY) NS_IMETHODIMP nsImageDocument::RestoreImage() { - mImageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::width, PR_TRUE); - mImageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::height, PR_TRUE); + // Keep image content alive while changing the attributes. + nsCOMPtr imageContent = mImageContent; + imageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::width, PR_TRUE); + imageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::height, PR_TRUE); if (mImageIsOverflowing) { - mImageContent->SetAttr(kNameSpaceID_None, nsGkAtoms::style, - NS_LITERAL_STRING("cursor: -moz-zoom-out"), PR_TRUE); + imageContent->SetAttr(kNameSpaceID_None, nsGkAtoms::style, + NS_LITERAL_STRING("cursor: -moz-zoom-out"), PR_TRUE); } else { - mImageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::style, PR_TRUE); + imageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::style, PR_TRUE); } mImageIsResized = PR_FALSE;