Changeset 16421 in webkit


Ignore:
Timestamp:
Sep 18, 2006 2:25:48 AM (18 years ago)
Author:
rwlbuis
Message:

Reviewed by Maciej.

http://bugzilla.opendarwin.org/show_bug.cgi?id=10807
REGRESSION (r16259): Repro crash on manual-tests/svg-repaint-image.svg

Make sure the paint method is not exited without popping
context and transparency layer.

Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r16420 r16421  
     12006-09-18  Rob Buis  <buis@kde.org>
     2
     3        Reviewed by Maciej.
     4
     5        http://bugzilla.opendarwin.org/show_bug.cgi?id=10807
     6        REGRESSION (r16259): Repro crash on manual-tests/svg-repaint-image.svg
     7
     8        Make sure the paint method is not exited without popping
     9        context and transparency layer.
     10
     11        WARNING: NO TEST CASES ADDED OR CHANGED
     12
     13        * kcanvas/RenderSVGImage.cpp:
     14        (WebCore::RenderSVGImage::paint):
     15
    1162006-09-18  Graham Dennis  <graham.dennis@gmail.com>
    217
  • trunk/WebCore/kcanvas/RenderSVGImage.cpp

    r16308 r16421  
    167167
    168168    int x = 0, y = 0;
    169     if (!shouldPaint(pi, x, y))
    170         return;
     169    if (shouldPaint(pi, x, y)) {
     170        SVGImageElement *imageElt = static_cast<SVGImageElement *>(node());
    171171       
    172     SVGImageElement *imageElt = static_cast<SVGImageElement *>(node());
    173        
    174     if (imageElt->preserveAspectRatio()->align() == SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_NONE)
    175         RenderImage::paint(pi, 0, 0);
    176     else {
    177         FloatRect destRect(m_x, m_y, contentWidth(), contentHeight());
    178         FloatRect srcRect(0, 0, image()->width(), image()->height());
    179         adjustRectsForAspectRatio(destRect, srcRect, imageElt->preserveAspectRatio());
    180         c->drawImage(image(), destRect, srcRect);
    181     }
    182 
    183     if (filter)
    184         filter->applyFilter(boundingBox);
     172        if (imageElt->preserveAspectRatio()->align() == SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_NONE)
     173            RenderImage::paint(pi, 0, 0);
     174        else {
     175            FloatRect destRect(m_x, m_y, contentWidth(), contentHeight());
     176            FloatRect srcRect(0, 0, image()->width(), image()->height());
     177            adjustRectsForAspectRatio(destRect, srcRect, imageElt->preserveAspectRatio());
     178            c->drawImage(image(), destRect, srcRect);
     179        }
     180
     181        if (filter)
     182            filter->applyFilter(boundingBox);
     183    }
    185184   
    186185    if (opacity < 1.0f)
Note: See TracChangeset for help on using the changeset viewer.