2011-04-06 Ryosuke Niwa <rniwa@webkit.org>
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Apr 2011 21:08:20 +0000 (21:08 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Apr 2011 21:08:20 +0000 (21:08 +0000)
        Reviewed by Eric Seidel.

        borderPaddingMarginStart and borderPaddingMarginEnd should take RenderInline
        https://bugs.webkit.org/show_bug.cgi?id=57965

        Changed the argument types of borderPaddingMarginStart and borderPaddingMarginEnd
        from RenderBoxModelObject to RenderInline since they call marginStart and marginEnd
        instead of marginStartForChild and marginEndForChild respectively.

        Calling these two functions on RenderInline is okay because writing-mode cannot differ
        from that of the containing block.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::borderPaddingMarginStart):
        (WebCore::borderPaddingMarginEnd):
        (WebCore::inlineLogicalWidth):

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

Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderBlockLineLayout.cpp

index f5c4f03d99da419efe8432ed2784ea4a79111f7b..9308b980e3932c95d42a2de92ef333523fa62487 100644 (file)
@@ -1,3 +1,22 @@
+2011-04-06  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        borderPaddingMarginStart and borderPaddingMarginEnd should take RenderInline
+        https://bugs.webkit.org/show_bug.cgi?id=57965
+
+        Changed the argument types of borderPaddingMarginStart and borderPaddingMarginEnd
+        from RenderBoxModelObject to RenderInline since they call marginStart and marginEnd
+        instead of marginStartForChild and marginEndForChild respectively.
+
+        Calling these two functions on RenderInline is okay because writing-mode cannot differ
+        from that of the containing block.
+
+        * rendering/RenderBlockLineLayout.cpp:
+        (WebCore::borderPaddingMarginStart):
+        (WebCore::borderPaddingMarginEnd):
+        (WebCore::inlineLogicalWidth):
+
 2011-04-06  Sheriff Bot  <webkit.review.bot@gmail.com>
 
         Unreviewed, rolling out r83039.
index d7b535c69994cfc03ab0f23f779d296fdd70b846..19a926916c7dbaac8ad01df154c7aa617c5b8ad4 100644 (file)
@@ -60,13 +60,12 @@ namespace WebCore {
 // We don't let our line box tree for a single line get any deeper than this.
 const unsigned cMaxLineDepth = 200;
 
-static inline int borderPaddingMarginStart(RenderBoxModelObject* child)
+static inline int borderPaddingMarginStart(RenderInline* child)
 {
-    // FIXME: Should we call marginStartForChild instead?
     return child->marginStart() + child->paddingStart() + child->borderStart();
 }
 
-static inline int borderPaddingMarginEnd(RenderBoxModelObject* child)
+static inline int borderPaddingMarginEnd(RenderInline* child)
 {
     return child->marginEnd() + child->paddingEnd() + child->borderEnd();
 }
@@ -76,13 +75,12 @@ static int inlineLogicalWidth(RenderObject* child, bool start = true, bool end =
     unsigned lineDepth = 1;
     int extraWidth = 0;
     RenderObject* parent = child->parent();
-    while (parent->isInline() && !parent->isInlineBlockOrInlineTable() && lineDepth++ < cMaxLineDepth) {
-        RenderBoxModelObject* parentAsBoxModelObject = toRenderBoxModelObject(parent);
-        ASSERT(parentAsBoxModelObject);
+    while (parent->isRenderInline() && lineDepth++ < cMaxLineDepth) {
+        RenderInline* parentAsRenderInline = toRenderInline(parent);
         if (start && !child->previousSibling())
-            extraWidth += borderPaddingMarginStart(parentAsBoxModelObject);
+            extraWidth += borderPaddingMarginStart(parentAsRenderInline);
         if (end && !child->nextSibling())
-            extraWidth += borderPaddingMarginEnd(parentAsBoxModelObject);
+            extraWidth += borderPaddingMarginEnd(parentAsRenderInline);
         child = parent;
         parent = child->parent();
     }