Changeset 21905 in webkit


Ignore:
Timestamp:
May 30, 2007 4:03:51 PM (17 years ago)
Author:
bdakin
Message:

Reviewed by Hyatt.

Fix for <rdar://problem/5198882> CrashTracer: [USER] 7 crashes in
Safari at com.apple.WebCore: WebCore::RenderBlock::layoutBlock +
2360

The problem is that we are re-entering layout when we should not.
http://trac.webkit.org/projects/webkit/changeset/21778 actually
fixed this crash, but we have been inspired to add the same guard
in two other possibly-dangerous places.

  • page/FrameView.cpp: (WebCore::FrameView::layout): Add the guard in two more places.
Location:
trunk/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r21904 r21905  
     12007-05-30  Beth Dakin  <bdakin@apple.com>
     2
     3        Reviewed by Hyatt.
     4
     5        Fix for <rdar://problem/5198882> CrashTracer: [USER] 7 crashes in
     6        Safari at com.apple.WebCore: WebCore::RenderBlock::layoutBlock +
     7        2360
     8
     9        The problem is that we are re-entering layout when we should not.
     10        http://trac.webkit.org/projects/webkit/changeset/21778 actually
     11        fixed this crash, but we have been inspired to add the same guard
     12        in two other possibly-dangerous places.
     13
     14        * page/FrameView.cpp:
     15        (WebCore::FrameView::layout): Add the guard in two more places.
     16
    1172007-05-30  Justin Garcia  <justin.garcia@apple.com>
    218
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r21896 r21905  
    1152711527                        isa = PBXProject;
    1152811528                        buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */;
     11529                        compatibilityVersion = "Xcode 2.4";
    1152911530                        hasScannedForEncodings = 1;
    1153011531                        knownRegions = (
     
    1154111542                        projectDirPath = "";
    1154211543                        projectRoot = "";
     11544                        shouldCheckCompatibility = 1;
    1154311545                        targets = (
    1154411546                                93F198A508245E59001E9ABC /* WebCore */,
  • trunk/WebCore/page/FrameView.cpp

    r21785 r21905  
    429429    d->layoutRoot = 0;
    430430
     431    d->midLayout = true;
    431432    m_frame->invalidateSelection();
     433    d->midLayout = false;
    432434   
    433435    d->layoutSchedulingEnabled=true;
     
    440442
    441443    // We update our widget positions right after doing a layout.
    442     if (!subtree)
     444    if (!subtree) {
     445        d->midLayout = true;
    443446        static_cast<RenderView*>(root)->updateWidgetPositions();
     447        d->midLayout = false;
     448    }
    444449   
    445450    // FIXME: Could optimize this and have objects removed from this list
Note: See TracChangeset for help on using the changeset viewer.