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>
 
 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.
        
        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());
     }
         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);
 
     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;
                                                  int& yPos)
 {
     RootInlineBox* last = 0;
-    if (m_linesAppended || !startLine)
+    if (!startLine)
         last = 0;
     else {
         for (RootInlineBox* curr = startLine->nextRootBox(); curr; curr = curr->nextRootBox()) {
         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_positionedObjects = 0;
     m_pre = false;
     m_firstLine = false;
-    m_linesAppended = false;
     m_hasMarkupTruncation = false;
     m_selectionState = SelectionNone;
     m_clearStatus = CNONE;
     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;
     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; }
 
     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;
     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;
 
     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 (!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);
     // For an empty inline, go ahead and propagate the check up to our parent.
     if (isInline() && !firstLineBox())
         return parent()->dirtyLinesFromChangedChild(this);