Title: [98748] trunk/Source/WebCore
Revision
98748
Author
[email protected]
Date
2011-10-28 12:15:26 -0700 (Fri, 28 Oct 2011)

Log Message

Use enum instead of bool to represent -webkit-column-span property.
https://bugs.webkit.org/show_bug.cgi?id=70867

Reviewed by Darin Adler.

Covered by existing tests.

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ColumnSpan):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createAnonymousColumnSpanBlock):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::propagateStyleToAnonymousChildren):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::columnSpan):
(WebCore::InheritedFlags::setColumnSpan):
(WebCore::InheritedFlags::initialColumnSpan):
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleMultiColData.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (98747 => 98748)


--- trunk/Source/WebCore/ChangeLog	2011-10-28 19:08:24 UTC (rev 98747)
+++ trunk/Source/WebCore/ChangeLog	2011-10-28 19:15:26 UTC (rev 98748)
@@ -1,3 +1,28 @@
+2011-10-28  Luke Macpherson   <[email protected]>
+
+        Use enum instead of bool to represent -webkit-column-span property.
+        https://bugs.webkit.org/show_bug.cgi?id=70867
+
+        Reviewed by Darin Adler.
+
+        Covered by existing tests.
+
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        (WebCore::CSSPrimitiveValue::operator ColumnSpan):
+        * css/CSSStyleSelector.cpp:
+        (WebCore::CSSStyleSelector::applyProperty):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::createAnonymousColumnSpanBlock):
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::propagateStyleToAnonymousChildren):
+        * rendering/style/RenderStyle.h:
+        (WebCore::InheritedFlags::columnSpan):
+        (WebCore::InheritedFlags::setColumnSpan):
+        (WebCore::InheritedFlags::initialColumnSpan):
+        * rendering/style/RenderStyleConstants.h:
+        * rendering/style/StyleMultiColData.h:
+
 2011-10-28  Mark Hahnenberg  <[email protected]>
 
         De-virtualize isGlobalObject, isVariableObject, isActivationObject, and isErrorInstance in JSObject

Modified: trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h (98747 => 98748)


--- trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2011-10-28 19:08:24 UTC (rev 98747)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2011-10-28 19:15:26 UTC (rev 98748)
@@ -130,6 +130,31 @@
     return 0.0f;
 }
 
+template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ColumnSpan columnSpan)
+    : m_hasCachedCSSText(false)
+{
+    switch (columnSpan) {
+    case ColumnSpanAll:
+        m_type = CSS_IDENT;
+        m_value.ident = CSSValueAll;
+        break;
+    case ColumnSpanOne:
+        m_type = CSS_NUMBER;
+        m_value.num = 1;
+        break;
+    }
+}
+
+template<> inline CSSPrimitiveValue::operator ColumnSpan() const
+{
+    if (m_type == CSS_IDENT && m_value.ident == CSSValueAll)
+        return ColumnSpanAll;
+    if (m_type == CSS_NUMBER && m_value.num == 1)
+        return ColumnSpanOne;
+    ASSERT_NOT_REACHED();
+    return ColumnSpanOne;
+}
+
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderStyle e)
     : m_type(CSS_IDENT)
     , m_hasCachedCSSText(false)

Modified: trunk/Source/WebCore/css/CSSStyleSelector.cpp (98747 => 98748)


--- trunk/Source/WebCore/css/CSSStyleSelector.cpp	2011-10-28 19:08:24 UTC (rev 98747)
+++ trunk/Source/WebCore/css/CSSStyleSelector.cpp	2011-10-28 19:15:26 UTC (rev 98748)
@@ -2477,6 +2477,8 @@
     bool isInherit = m_parentNode && valueType == CSSValue::CSS_INHERIT;
     bool isInitial = valueType == CSSValue::CSS_INITIAL || (!m_parentNode && valueType == CSSValue::CSS_INHERIT);
 
+    ASSERT(!isInherit || !isInitial); // isInherit -> !isInitial && isInitial -> !isInherit
+
     if (!applyPropertyToRegularStyle() && (!applyPropertyToVisitedLinkStyle() || !isValidVisitedLinkProperty(id))) {
         // Limit the properties that can be applied to only the ones honored by :visited.
         return;
@@ -3356,11 +3358,9 @@
     case CSSPropertyBoxSizing:
         HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE(boxSizing, BoxSizing);
         return;
-    case CSSPropertyWebkitColumnSpan: {
-        HANDLE_INHERIT_AND_INITIAL(columnSpan, ColumnSpan)
-        m_style->setColumnSpan(primitiveValue->getIdent() == CSSValueAll);
+    case CSSPropertyWebkitColumnSpan:
+        HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE(columnSpan, ColumnSpan)
         return;
-    }
     case CSSPropertyWebkitColumnRuleStyle:
         HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE_WITH_VALUE(columnRuleStyle, ColumnRuleStyle, BorderStyle)
         return;

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (98747 => 98748)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2011-10-28 19:08:24 UTC (rev 98747)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2011-10-28 19:15:26 UTC (rev 98748)
@@ -6222,7 +6222,7 @@
 RenderBlock* RenderBlock::createAnonymousColumnSpanBlock() const
 {
     RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style());
-    newStyle->setColumnSpan(true);
+    newStyle->setColumnSpan(ColumnSpanAll);
     newStyle->setDisplay(BLOCK);
 
     RenderBlock* newBox = new (renderArena()) RenderBlock(document() /* anonymous box */);

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (98747 => 98748)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2011-10-28 19:08:24 UTC (rev 98747)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2011-10-28 19:15:26 UTC (rev 98748)
@@ -1906,7 +1906,7 @@
             if (child->style()->specifiesColumns())
                 newStyle->inheritColumnPropertiesFrom(style());
             if (child->style()->columnSpan())
-                newStyle->setColumnSpan(true);
+                newStyle->setColumnSpan(ColumnSpanAll);
         }
         newStyle->setDisplay(child->style()->display());
         child->setStyle(newStyle.release());

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (98747 => 98748)


--- trunk/Source/WebCore/rendering/style/RenderStyle.h	2011-10-28 19:08:24 UTC (rev 98747)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h	2011-10-28 19:15:26 UTC (rev 98748)
@@ -773,7 +773,7 @@
     EBorderStyle columnRuleStyle() const { return rareNonInheritedData->m_multiCol->m_rule.style(); }
     unsigned short columnRuleWidth() const { return rareNonInheritedData->m_multiCol->ruleWidth(); }
     bool columnRuleIsTransparent() const { return rareNonInheritedData->m_multiCol->m_rule.isTransparent(); }
-    bool columnSpan() const { return rareNonInheritedData->m_multiCol->m_columnSpan; }
+    ColumnSpan columnSpan() const { return static_cast<ColumnSpan>(rareNonInheritedData->m_multiCol->m_columnSpan); }
     EPageBreak columnBreakBefore() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakBefore); }
     EPageBreak columnBreakInside() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakInside); }
     EPageBreak columnBreakAfter() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakAfter); }
@@ -1164,7 +1164,7 @@
     void setColumnRuleStyle(EBorderStyle b) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule.m_style, b); }
     void setColumnRuleWidth(unsigned short w) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule.m_width, w); }
     void resetColumnRule() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule, BorderValue()) }
-    void setColumnSpan(bool b) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_columnSpan, b); }
+    void setColumnSpan(ColumnSpan columnSpan) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_columnSpan, columnSpan); }
     void setColumnBreakBefore(EPageBreak p) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_breakBefore, p); }
     // For valid values of column-break-inside see http://www.w3.org/TR/css3-multicol/#break-before-break-after-break-inside
     void setColumnBreakInside(EPageBreak p) { ASSERT(p == PBAUTO || p == PBAVOID); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_breakInside, p); }
@@ -1451,7 +1451,7 @@
     static Order initialRTLOrdering() { return LogicalOrder; }
     static float initialTextStrokeWidth() { return 0; }
     static unsigned short initialColumnCount() { return 1; }
-    static bool initialColumnSpan() { return false; }
+    static ColumnSpan initialColumnSpan() { return ColumnSpanOne; }
     static const TransformOperations& initialTransform() { DEFINE_STATIC_LOCAL(TransformOperations, ops, ()); return ops; }
     static Length initialTransformOriginX() { return Length(50.0, Percent); }
     static Length initialTransformOriginY() { return Length(50.0, Percent); }

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (98747 => 98748)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2011-10-28 19:08:24 UTC (rev 98747)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2011-10-28 19:15:26 UTC (rev 98748)
@@ -83,6 +83,8 @@
     PUBLIC_PSEUDOID_MASK = ((1 << FIRST_INTERNAL_PSEUDOID) - 1) & ~((1 << FIRST_PUBLIC_PSEUDOID) - 1)
 };
 
+enum ColumnSpan { ColumnSpanOne = 0, ColumnSpanAll};
+
 enum EBorderCollapse { BSEPARATE = 0, BCOLLAPSE = 1 };
 
 // These have been defined in the order of their precedence for border-collapsing. Do

Modified: trunk/Source/WebCore/rendering/style/StyleMultiColData.h (98747 => 98748)


--- trunk/Source/WebCore/rendering/style/StyleMultiColData.h	2011-10-28 19:08:24 UTC (rev 98747)
+++ trunk/Source/WebCore/rendering/style/StyleMultiColData.h	2011-10-28 19:15:26 UTC (rev 98748)
@@ -62,7 +62,7 @@
     bool m_autoWidth : 1;
     bool m_autoCount : 1;
     bool m_normalGap : 1;
-    bool m_columnSpan : 1;
+    unsigned m_columnSpan : 1;
     unsigned m_breakBefore : 2; // EPageBreak
     unsigned m_breakAfter : 2; // EPageBreak
     unsigned m_breakInside : 2; // EPageBreak
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to