Changeset 76864 in webkit


Ignore:
Timestamp:
Jan 27, 2011 4:50:34 PM (13 years ago)
Author:
enne@google.com
Message:

2011-01-27 Adrienne Walker <enne@google.com>

Reviewed by James Robinson.

[chromium] Tiled compositor crashes if compositing turned off mid-paint
https://bugs.webkit.org/show_bug.cgi?id=53198

  • platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawLayers):
  • platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::update): (WebCore::LayerTilerChromium::draw):
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r76859 r76864  
     12011-01-27  Adrienne Walker  <enne@google.com>
     2
     3        Reviewed by James Robinson.
     4
     5        [chromium] Tiled compositor crashes if compositing turned off mid-paint
     6        https://bugs.webkit.org/show_bug.cgi?id=53198
     7
     8        * platform/graphics/chromium/LayerRendererChromium.cpp:
     9        (WebCore::LayerRendererChromium::drawLayers):
     10        * platform/graphics/chromium/LayerTilerChromium.cpp:
     11        (WebCore::LayerTilerChromium::update):
     12        (WebCore::LayerTilerChromium::draw):
     13
    1142011-01-27  Carol Szabo <carol.szabo@nokia.com>
    215
  • trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp

    r76537 r76864  
    266266    m_context->colorMask(true, true, true, true);
    267267
     268    // Recheck that we still have a root layer.  This may become null if
     269    // compositing gets turned off during a paint operation.
     270    if (!m_rootLayer)
     271        return;
     272
    268273    // Set the root visible/content rects --- used by subsequent drawLayers calls.
    269274    m_rootVisibleRect = visibleRect;
  • trunk/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp

    r76165 r76864  
    300300#endif
    301301
     302    // Painting could cause compositing to get turned off, which may cause the tiler to become invalidated mid-update.
     303    if (!m_tiles.size())
     304        return;
     305
    302306    for (int j = top; j <= bottom; ++j) {
    303307        for (int i = left; i <= right; ++i) {
     
    358362void LayerTilerChromium::draw(const IntRect& contentRect)
    359363{
    360     if (m_skipsDraw)
     364    if (m_skipsDraw || !m_tiles.size())
    361365        return;
    362366
Note: See TracChangeset for help on using the changeset viewer.