Changeset 51883 in webkit


Ignore:
Timestamp:
Dec 8, 2009 5:43:05 PM (14 years ago)
Author:
agl@chromium.org
Message:

2009-12-08 Adam Langley <agl@google.com>

Reviewed by Darin Adler.

Fix assertion failure in WebCore::RenderBlock::startDelayUpdateScrollInfo

startDelayUpdateScrollInfo calls a function that can end up calling
startDelayUpdateScrollInfo again. However, it's static state is
inconsistent when this happens leading to an assertion failure (or
probably a memory leak if assertions are off).

Thanks to Robert Swiecki for the test case.

https://bugs.webkit.org/show_bug.cgi?id=32172
http://code.google.com/p/chromium/issues/detail?id=28880

Test: fast/css/recursive-delay-update-scroll.html

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::finishDelayUpdateScrollInfo):

2009-12-08 Adam Langley <agl@google.com>

Reviewed by Darin Adler.

Fix assertion failure in WebCore::RenderBlock::startDelayUpdateScrollInfo

startDelayUpdateScrollInfo calls a function that can end up calling
startDelayUpdateScrollInfo again. However, it's static state is
inconsistent when this happens leading to an assertion failure (or
probably a memory leak if assertions are off).

Thanks to Robert Swiecki for the test case.

https://bugs.webkit.org/show_bug.cgi?id=32172
http://code.google.com/p/chromium/issues/detail?id=28880

  • fast/css/recursive-delay-update-scroll.html: Added.
  • fast/css/recursive-delay-update-scroll-expected.txt: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r51878 r51883  
     12009-12-08  Adam Langley  <agl@google.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        Fix assertion failure in WebCore::RenderBlock::startDelayUpdateScrollInfo
     6
     7        startDelayUpdateScrollInfo calls a function that can end up calling
     8        startDelayUpdateScrollInfo again. However, it's static state is
     9        inconsistent when this happens leading to an assertion failure (or
     10        probably a memory leak if assertions are off).
     11
     12        Thanks to Robert Swiecki for the test case.
     13
     14        https://bugs.webkit.org/show_bug.cgi?id=32172
     15        http://code.google.com/p/chromium/issues/detail?id=28880
     16
     17
     18        * fast/css/recursive-delay-update-scroll.html: Added.
     19        * fast/css/recursive-delay-update-scroll-expected.txt: Added.
     20
    1212009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>
    222
  • trunk/WebCore/ChangeLog

    r51881 r51883  
     12009-12-08  Adam Langley  <agl@google.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        Fix assertion failure in WebCore::RenderBlock::startDelayUpdateScrollInfo
     6
     7        startDelayUpdateScrollInfo calls a function that can end up calling
     8        startDelayUpdateScrollInfo again. However, it's static state is
     9        inconsistent when this happens leading to an assertion failure (or
     10        probably a memory leak if assertions are off).
     11
     12        Thanks to Robert Swiecki for the test case.
     13
     14        https://bugs.webkit.org/show_bug.cgi?id=32172
     15        http://code.google.com/p/chromium/issues/detail?id=28880
     16
     17        Test: fast/css/recursive-delay-update-scroll.html
     18
     19        * rendering/RenderBlock.cpp:
     20        (WebCore::RenderBlock::finishDelayUpdateScrollInfo):
     21
    1222009-12-08  Steve Falkenburg  <sfalken@apple.com>
    223
  • trunk/WebCore/rendering/RenderBlock.cpp

    r51776 r51883  
    618618        ASSERT(gDelayedUpdateScrollInfoSet);
    619619
    620         for (DelayedUpdateScrollInfoSet::iterator it = gDelayedUpdateScrollInfoSet->begin(); it != gDelayedUpdateScrollInfoSet->end(); ++it) {
     620        OwnPtr<DelayedUpdateScrollInfoSet> infoSet(gDelayedUpdateScrollInfoSet);
     621        gDelayedUpdateScrollInfoSet = 0;
     622
     623        for (DelayedUpdateScrollInfoSet::iterator it = infoSet->begin(); it != infoSet->end(); ++it) {
    621624            RenderBlock* block = *it;
    622625            if (block->hasOverflowClip()) {
     
    624627            }
    625628        }
    626 
    627         delete gDelayedUpdateScrollInfoSet;
    628         gDelayedUpdateScrollInfoSet = 0;
    629629    }
    630630}
Note: See TracChangeset for help on using the changeset viewer.