[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:19:35 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 18abd1c0227d4811a1e371208a60044cb39a6d20
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Dec 17 01:46:18 2003 +0000

    	Fix for 3510956, crash on mezzoblue.com.  Relax the float-list searching code that runs when
    	a float is removed.
    
            Reviewed by darin
    
            * khtml/rendering/render_object.cpp:
            (checkFloats):
            (RenderObject::removeFromObjectLists):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5810 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 3206ffd..8b8d5b6 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,14 @@
+2003-12-16  David Hyatt  <hyatt at apple.com>
+
+	Fix for 3510956, crash on mezzoblue.com.  Relax the float-list searching code that runs when
+	a float is removed.
+	
+        Reviewed by darin
+
+        * khtml/rendering/render_object.cpp:
+        (checkFloats):
+        (RenderObject::removeFromObjectLists):
+
 2003-12-16  John Sullivan  <sullivan at apple.com>
 
         fixed <rdar://problem/3482852>: oft-seen, non-repro, nil-deref in 
diff --git a/WebCore/khtml/rendering/render_object.cpp b/WebCore/khtml/rendering/render_object.cpp
index 674bfb0..0aa34b5 100644
--- a/WebCore/khtml/rendering/render_object.cpp
+++ b/WebCore/khtml/rendering/render_object.cpp
@@ -1482,15 +1482,35 @@ RenderObject *RenderObject::container() const
     return o;
 }
 
+#if 0
+static void checkFloats(RenderObject* o, RenderObject* f)
+{
+    if (o->isRenderBlock()) {
+        RenderBlock* b = static_cast<RenderBlock*>(o);
+        if (b->containsFloat(f))
+            assert(false);
+    }
+    
+    for (RenderObject* c = o->firstChild(); c; c = c->nextSibling())
+        checkFloats(c, f);
+}
+#endif
+
 void RenderObject::removeFromObjectLists()
 {
     if (isFloating()) {
         RenderBlock* outermostBlock = containingBlock();
-        for (RenderBlock* p = outermostBlock;
-             p && !p->isCanvas() && p->containsFloat(this);
-             outermostBlock = p, p = p->containingBlock());
+        for (RenderBlock* p = outermostBlock; p && !p->isCanvas(); p = p->containingBlock()) {
+            if (p->containsFloat(this))
+                outermostBlock = p;
+        }
+        
         if (outermostBlock)
             outermostBlock->markAllDescendantsWithFloatsForLayout(this);
+#if 0
+        // Debugging code for float checking.
+        checkFloats(canvas(), this);
+#endif
     }
 
     if (isPositioned()) {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list