[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:51:17 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit ff339e69de5f476eaa7a122a6a487fdaf65db65b
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jul 19 21:40:43 2004 +0000

    	Fix for 3718697, crash clicking on JS tab at alaskaair.com.
    
            Reviewed by kocienda
    
            * khtml/rendering/render_flow.cpp:
            (RenderFlow::detach):
            (RenderFlow::dirtyLinesFromChangedChild):
            * khtml/rendering/render_flow.h:
            * khtml/rendering/render_object.cpp:
            (RenderObject::dirtyLinesFromChangedChild):
            * khtml/rendering/render_object.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@7052 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 3b9cda3..96f100d 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,17 @@
+2004-07-19  David Hyatt  <hyatt at apple.com>
+
+	Fix for 3718697, crash clicking on JS tab at alaskaair.com.
+	
+        Reviewed by kocienda
+
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::detach):
+        (RenderFlow::dirtyLinesFromChangedChild):
+        * khtml/rendering/render_flow.h:
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::dirtyLinesFromChangedChild):
+        * khtml/rendering/render_object.h:
+
 2004-07-16  David Hyatt  <hyatt at apple.com>
 
 	Fix for 3726471, need to ensure that it's safe to do updateRendering from within layout, since isContentEditable
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index eee92be..ab6021a 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -182,21 +182,27 @@ void RenderFlow::deleteLineBoxes()
 
 void RenderFlow::detach()
 {
-    if (!documentBeingDestroyed() && m_firstLineBox && m_firstLineBox->parent()) {
-        for (InlineRunBox* box = m_firstLineBox; box; box = box->nextLineBox())
-            box->parent()->removeChild(box);
+    if (!documentBeingDestroyed()) {
+        if (m_firstLineBox) {
+            if (m_firstLineBox->parent()) {
+                for (InlineRunBox* box = m_firstLineBox; box; box = box->nextLineBox())
+                    box->parent()->removeChild(box);
+            }
+        }
+        else if (isInline() && parent())
+            parent()->dirtyLinesFromChangedChild(this, false);
     }
 
     deleteLineBoxes();
     RenderBox::detach();
 }
 
-void RenderFlow::dirtyLinesFromChangedChild(RenderObject* child)
+void RenderFlow::dirtyLinesFromChangedChild(RenderObject* child, bool adding)
 {
     if (!parent() || selfNeedsLayout() || isTable())
         return;
     
-    if (!isInline() && (!child->nextSibling() || !firstLineBox())) {
+    if (adding && !isInline() && (!child->nextSibling() || !firstLineBox())) {
         // An append onto the end of a block or we don't have any lines anyway.  
         // In this case we don't have to dirty any specific lines.
         static_cast<RenderBlock*>(this)->setLinesAppended();
diff --git a/WebCore/khtml/rendering/render_flow.h b/WebCore/khtml/rendering/render_flow.h
index 9bb6b26..7d0ec4b 100644
--- a/WebCore/khtml/rendering/render_flow.h
+++ b/WebCore/khtml/rendering/render_flow.h
@@ -62,7 +62,7 @@ public:
     void deleteLineBoxes();
     virtual void detach();
 
-    virtual void dirtyLinesFromChangedChild(RenderObject* child);
+    virtual void dirtyLinesFromChangedChild(RenderObject* child, bool adding = true);
     
     virtual short lineHeight(bool firstLine, bool isRootLineBox=false) const;
     
diff --git a/WebCore/khtml/rendering/render_object.cpp b/WebCore/khtml/rendering/render_object.cpp
index 66397f4..5396d49 100644
--- a/WebCore/khtml/rendering/render_object.cpp
+++ b/WebCore/khtml/rendering/render_object.cpp
@@ -1288,7 +1288,7 @@ void RenderObject::computeAbsoluteRepaintRect(QRect& r, bool f)
         return parent()->computeAbsoluteRepaintRect(r, f);
 }
 
-void RenderObject::dirtyLinesFromChangedChild(RenderObject* child)
+void RenderObject::dirtyLinesFromChangedChild(RenderObject* child, bool adding)
 {
 }
 
diff --git a/WebCore/khtml/rendering/render_object.h b/WebCore/khtml/rendering/render_object.h
index 925e263..6e71dc7 100644
--- a/WebCore/khtml/rendering/render_object.h
+++ b/WebCore/khtml/rendering/render_object.h
@@ -488,7 +488,7 @@ public:
     
     virtual DOM::Position positionForCoordinates(int x, int y);
     
-    virtual void dirtyLinesFromChangedChild(RenderObject* child);
+    virtual void dirtyLinesFromChangedChild(RenderObject* child, bool adding = true);
     
     // set the style of the object.
     virtual void setStyle(RenderStyle *style);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list