Modified: trunk/Source/WebCore/css/CSSParser.cpp (186684 => 186685)
--- trunk/Source/WebCore/css/CSSParser.cpp 2015-07-10 20:19:52 UTC (rev 186684)
+++ trunk/Source/WebCore/css/CSSParser.cpp 2015-07-10 20:34:30 UTC (rev 186685)
@@ -199,9 +199,10 @@
return false;
}
-static Ref<CSSPrimitiveValue> createPrimitiveValuePair(PassRefPtr<CSSPrimitiveValue> first, PassRefPtr<CSSPrimitiveValue> second)
+template<typename... Args>
+static Ref<CSSPrimitiveValue> createPrimitiveValuePair(Args&&... args)
{
- return cssValuePool().createValue(Pair::create(first, second));
+ return cssValuePool().createValue(Pair::create(std::forward<Args>(args)...));
}
class AnimationParseContext {
@@ -4311,7 +4312,7 @@
return value == CSSValueLeft || value == CSSValueTop || value == CSSValueBottom || value == CSSValueRight || value == CSSValueCenter;
}
-void CSSParser::parse4ValuesFillPosition(CSSParserValueList& valueList, RefPtr<CSSValue>& value1, RefPtr<CSSValue>& value2, PassRefPtr<CSSPrimitiveValue> parsedValue1, PassRefPtr<CSSPrimitiveValue> parsedValue2)
+void CSSParser::parse4ValuesFillPosition(CSSParserValueList& valueList, RefPtr<CSSValue>& value1, RefPtr<CSSValue>& value2, RefPtr<CSSPrimitiveValue>&& parsedValue1, RefPtr<CSSPrimitiveValue>&& parsedValue2)
{
// [ left | right ] [ <percentage] | <length> ] && [ top | bottom ] [ <percentage> | <length> ]
// In the case of 4 values <position> requires the second value to be a length or a percentage.
@@ -4351,15 +4352,15 @@
if (isFillPositionKeyword(value4->getValueID()))
return;
- value1 = createPrimitiveValuePair(parsedValue1, parsedValue2);
- value2 = createPrimitiveValuePair(value3, value4);
+ value1 = createPrimitiveValuePair(WTF::move(parsedValue1), WTF::move(parsedValue2));
+ value2 = createPrimitiveValuePair(value3.copyRef(), value4.copyRef());
if (ident1 == CSSValueTop || ident1 == CSSValueBottom)
value1.swap(value2);
valueList.next();
}
-void CSSParser::parse3ValuesFillPosition(CSSParserValueList& valueList, RefPtr<CSSValue>& value1, RefPtr<CSSValue>& value2, PassRefPtr<CSSPrimitiveValue> parsedValue1, PassRefPtr<CSSPrimitiveValue> parsedValue2)
+void CSSParser::parse3ValuesFillPosition(CSSParserValueList& valueList, RefPtr<CSSValue>& value1, RefPtr<CSSValue>& value2, RefPtr<CSSPrimitiveValue>&& parsedValue1, RefPtr<CSSPrimitiveValue>&& parsedValue2)
{
unsigned cumulativeFlags = 0;
FillPositionFlag value3Flag = InvalidFillPosition;
@@ -4394,7 +4395,7 @@
swapNeeded = true;
}
value1 = createPrimitiveValuePair(cssValuePool().createIdentifierValue(firstPositionKeyword), cssValuePool().createValue(50, CSSPrimitiveValue::CSS_PERCENTAGE));
- value2 = createPrimitiveValuePair(parsedValue2, value3);
+ value2 = createPrimitiveValuePair(WTF::move(parsedValue2), value3.copyRef());
} else if (ident3 == CSSValueCenter) {
if (isFillPositionKeyword(ident2))
return;
@@ -4404,7 +4405,7 @@
secondPositionKeyword = CSSValueLeft;
swapNeeded = true;
}
- value1 = createPrimitiveValuePair(parsedValue1, parsedValue2);
+ value1 = createPrimitiveValuePair(WTF::move(parsedValue1), parsedValue2.copyRef());
value2 = createPrimitiveValuePair(cssValuePool().createIdentifierValue(secondPositionKeyword), cssValuePool().createValue(50, CSSPrimitiveValue::CSS_PERCENTAGE));
} else {
RefPtr<CSSPrimitiveValue> firstPositionValue;
@@ -4433,8 +4434,8 @@
if (isValueConflictingWithCurrentEdge(ident1, secondPositionKeyword))
return;
- value1 = createPrimitiveValuePair(parsedValue1, firstPositionValue);
- value2 = createPrimitiveValuePair(cssValuePool().createIdentifierValue(secondPositionKeyword), secondPositionValue);
+ value1 = createPrimitiveValuePair(WTF::move(parsedValue1), firstPositionValue.copyRef());
+ value2 = createPrimitiveValuePair(cssValuePool().createIdentifierValue(secondPositionKeyword), secondPositionValue.copyRef());
}
if (ident1 == CSSValueTop || ident1 == CSSValueBottom || swapNeeded)
@@ -4516,9 +4517,9 @@
return;
if (numberOfValues == 3)
- parse3ValuesFillPosition(valueList, value1, value2, parsedValue1.release(), parsedValue2.release());
+ parse3ValuesFillPosition(valueList, value1, value2, WTF::move(parsedValue1), WTF::move(parsedValue2));
else
- parse4ValuesFillPosition(valueList, value1, value2, parsedValue1.release(), parsedValue2.release());
+ parse4ValuesFillPosition(valueList, value1, value2, WTF::move(parsedValue1), WTF::move(parsedValue2));
}
void CSSParser::parse2ValuesFillPosition(CSSParserValueList& valueList, RefPtr<CSSValue>& value1, RefPtr<CSSValue>& value2)
@@ -4648,7 +4649,7 @@
if (!parsedValue2)
return parsedValue1;
- return createPrimitiveValuePair(parsedValue1.release(), parsedValue2.release());
+ return createPrimitiveValuePair(WTF::move(parsedValue1), WTF::move(parsedValue2));
}
bool CSSParser::parseFillProperty(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2,
@@ -8060,7 +8061,7 @@
} else
secondValue = firstValue;
- result = createPrimitiveValuePair(firstValue, secondValue);
+ result = createPrimitiveValuePair(WTF::move(firstValue), WTF::move(secondValue));
return true;
}
Modified: trunk/Source/WebCore/css/CSSParser.h (186684 => 186685)
--- trunk/Source/WebCore/css/CSSParser.h 2015-07-10 20:19:52 UTC (rev 186684)
+++ trunk/Source/WebCore/css/CSSParser.h 2015-07-10 20:34:30 UTC (rev 186685)
@@ -167,8 +167,8 @@
void parse2ValuesFillPosition(CSSParserValueList&, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
bool isPotentialPositionValue(CSSParserValue&);
void parseFillPosition(CSSParserValueList&, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
- void parse3ValuesFillPosition(CSSParserValueList&, RefPtr<CSSValue>&, RefPtr<CSSValue>&, PassRefPtr<CSSPrimitiveValue>, PassRefPtr<CSSPrimitiveValue>);
- void parse4ValuesFillPosition(CSSParserValueList&, RefPtr<CSSValue>&, RefPtr<CSSValue>&, PassRefPtr<CSSPrimitiveValue>, PassRefPtr<CSSPrimitiveValue>);
+ void parse3ValuesFillPosition(CSSParserValueList&, RefPtr<CSSValue>&, RefPtr<CSSValue>&, RefPtr<CSSPrimitiveValue>&&, RefPtr<CSSPrimitiveValue>&&);
+ void parse4ValuesFillPosition(CSSParserValueList&, RefPtr<CSSValue>&, RefPtr<CSSValue>&, RefPtr<CSSPrimitiveValue>&&, RefPtr<CSSPrimitiveValue>&&);
void parseFillRepeat(RefPtr<CSSValue>&, RefPtr<CSSValue>&);
PassRefPtr<CSSValue> parseFillSize(CSSPropertyID, bool &allowComma);
Modified: trunk/Source/WebCore/css/Pair.h (186684 => 186685)
--- trunk/Source/WebCore/css/Pair.h 2015-07-10 20:19:52 UTC (rev 186684)
+++ trunk/Source/WebCore/css/Pair.h 2015-07-10 20:34:30 UTC (rev 186685)
@@ -1,6 +1,6 @@
/*
* (C) 1999-2003 Lars Knoll (kn...@kde.org)
- * Copyright (C) 2004, 2005, 2006 Apple Inc.
+ * Copyright (C) 2004, 2005, 2006, 2015 Apple Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -38,17 +38,17 @@
{
return adoptRef(*new Pair);
}
- static Ref<Pair> create(PassRefPtr<CSSPrimitiveValue> first, PassRefPtr<CSSPrimitiveValue> second)
+ static Ref<Pair> create(RefPtr<CSSPrimitiveValue>&& first, RefPtr<CSSPrimitiveValue>&& second)
{
- return adoptRef(*new Pair(first, second));
+ return adoptRef(*new Pair(WTF::move(first), WTF::move(second)));
}
virtual ~Pair() { }
CSSPrimitiveValue* first() const { return m_first.get(); }
CSSPrimitiveValue* second() const { return m_second.get(); }
- void setFirst(PassRefPtr<CSSPrimitiveValue> first) { m_first = first; }
- void setSecond(PassRefPtr<CSSPrimitiveValue> second) { m_second = second; }
+ void setFirst(RefPtr<CSSPrimitiveValue>&& first) { m_first = WTF::move(first); }
+ void setSecond(RefPtr<CSSPrimitiveValue>&& second) { m_second = WTF::move(second); }
String cssText() const
{
@@ -59,9 +59,8 @@
bool equals(const Pair& other) const { return compareCSSValuePtr(m_first, other.m_first) && compareCSSValuePtr(m_second, other.m_second); }
private:
- Pair() : m_first(0), m_second(0) { }
- Pair(PassRefPtr<CSSPrimitiveValue> first, PassRefPtr<CSSPrimitiveValue> second)
- : m_first(first), m_second(second) { }
+ Pair() : m_first(nullptr), m_second(nullptr) { }
+ Pair(RefPtr<CSSPrimitiveValue>&& first, RefPtr<CSSPrimitiveValue>&& second) : m_first(WTF::move(first)), m_second(WTF::move(second)) { }
static String generateCSSString(const String& first, const String& second)
{