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