Fix for 3615411, the linesAppended optimization was old and broken, and it's easier...
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Dec 2004 02:09:10 +0000 (02:09 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Dec 2004 02:09:10 +0000 (02:09 +0000)
made by me, kocienda and harrison to just remove it.

        Reviewed by mjs

        * khtml/rendering/bidi.cpp:
        (khtml::RenderBlock::layoutInlineChildren):
        * khtml/rendering/render_block.cpp:
        (khtml:::RenderFlow):
        * khtml/rendering/render_block.h:
        * khtml/rendering/render_flow.cpp:
        (RenderFlow::dirtyLinesFromChangedChild):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8141 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/rendering/bidi.cpp
WebCore/khtml/rendering/render_block.cpp
WebCore/khtml/rendering/render_block.h
WebCore/khtml/rendering/render_flow.cpp

index 07ac771..c0285ef 100644 (file)
@@ -1,5 +1,20 @@
 2004-12-06  David Hyatt  <hyatt@apple.com>
 
+       Fix for 3615411, the linesAppended optimization was old and broken, and it's easier with the new code fixes
+       made by me, kocienda and harrison to just remove it.
+       
+        Reviewed by mjs
+
+        * khtml/rendering/bidi.cpp:
+        (khtml::RenderBlock::layoutInlineChildren):
+        * khtml/rendering/render_block.cpp:
+        (khtml:::RenderFlow):
+        * khtml/rendering/render_block.h:
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::dirtyLinesFromChangedChild):
+
+2004-12-06  David Hyatt  <hyatt@apple.com>
+
        Fix for 3787133, some web pages print with many blank pages.  Make sure to use the real page print rect and
        not a damage rect that can be changed when intersected with the clip regions of the web page.
        
index 129fab7..6e2d074 100644 (file)
@@ -1591,9 +1591,7 @@ QRect RenderBlock::layoutInlineChildren(bool relayoutChildren)
         if (repaintRect.height() == 0)
             repaintRect.setHeight(kMax(oldLineBottom, m_overflowHeight) - repaintRect.y());
     }
-    
-    setLinesAppended(false);
-    
+
     if (!firstLineBox() && element() && element()->isContentEditable() && element()->rootEditableElement() == element())
         m_height += lineHeight(true);
 
@@ -1676,7 +1674,7 @@ RootInlineBox* RenderBlock::determineEndPosition(RootInlineBox* startLine, BidiI
                                                  int& yPos)
 {
     RootInlineBox* last = 0;
-    if (m_linesAppended || !startLine)
+    if (!startLine)
         last = 0;
     else {
         for (RootInlineBox* curr = startLine->nextRootBox(); curr; curr = curr->nextRootBox()) {
index 3cbb919..12cf02f 100644 (file)
@@ -90,7 +90,6 @@ RenderBlock::RenderBlock(DOM::NodeImpl* node)
     m_positionedObjects = 0;
     m_pre = false;
     m_firstLine = false;
-    m_linesAppended = false;
     m_hasMarkupTruncation = false;
     m_selectionState = SelectionNone;
     m_clearStatus = CNONE;
index 54a274f..f85c263 100644 (file)
@@ -199,9 +199,6 @@ public:
     virtual void updateFirstLetter();
     
     bool inRootBlockContext() const;
-    
-    void setLinesAppended(bool b=true) { m_linesAppended = b; }
-    bool linesAppended() const { return m_linesAppended; }
 
     void setHasMarkupTruncation(bool b=true) { m_hasMarkupTruncation = b; }
     bool hasMarkupTruncation() const { return m_hasMarkupTruncation; }
@@ -403,7 +400,6 @@ protected:
     EClear m_clearStatus  : 2;
     bool m_topMarginQuirk : 1;
     bool m_bottomMarginQuirk : 1;
-    bool m_linesAppended : 1; // Whether or not a block with inline children has had lines appended.
     bool m_hasMarkupTruncation : 1;
     SelectionState m_selectionState : 3;
 
index 5852345..e8c7838 100644 (file)
@@ -223,14 +223,7 @@ void RenderFlow::dirtyLinesFromChangedChild(RenderObject* child, bool adding)
 {
     if (!parent() || selfNeedsLayout() || isTable())
         return;
-    
-    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();
-        return;
-    }
-    
+
     // For an empty inline, go ahead and propagate the check up to our parent.
     if (isInline() && !firstLineBox())
         return parent()->dirtyLinesFromChangedChild(this);