WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-146852-20150710133059.patch (text/plain), 10.86 KB, created by
Daniel Bates
on 2015-07-10 13:32:01 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Daniel Bates
Created:
2015-07-10 13:32:01 PDT
Size:
10.86 KB
patch
obsolete
>Subversion Revision: 186679 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index b1910b7886a7296310c6d9048376f4fe8fc95852..0619b4a4a792857c550ec9b0ceccce875d937d83 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,27 @@ >+2015-07-10 Daniel Bates <dabates@apple.com> >+ >+ Cleanup: WebCore::Pair class should use RefPtr&& instead of PassRefPtr >+ https://bugs.webkit.org/show_bug.cgi?id=146852 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * css/CSSParser.cpp: >+ (WebCore::createPrimitiveValuePair): Write using a variadic template that forwards its >+ arguments to the appropriate Pair::create constructor. >+ (WebCore::CSSParser::parse4ValuesFillPosition): Use RefPtr&& instead of PassRefPtr. >+ (WebCore::CSSParser::parse3ValuesFillPosition): Ditto. >+ (WebCore::CSSParser::parseFillPosition): Use WTF::move() instead of RefPtr::release() >+ so that we pass a rvalue reference to RefPtr. >+ (WebCore::CSSParser::parseFillSize): Ditto. >+ (WebCore::CSSParser::parseBorderImageRepeat): Ditto. >+ * css/CSSParser.h: >+ * css/Pair.h: >+ (WebCore::Pair::create): Use RefPtr&& instead of PassRefPtr. >+ (WebCore::Pair::setFirst): Ditto. >+ (WebCore::Pair::setSecond): Ditto. >+ (WebCore::Pair::Pair): Ditto. Also substitute nullptr for 0 in the member initialization >+ list of the default constructor. >+ > 2015-07-10 Chris Fleizach <cfleizach@apple.com> > > AX: <details> element should allow expand/close through AX API >diff --git a/Source/WebCore/css/CSSParser.cpp b/Source/WebCore/css/CSSParser.cpp >index a2248ca9a6aa4b2fcb8cd6e83a58fdeb192031a7..d3b66e9263a7e7d8d3d21f957d0be74e1bd23db3 100644 >--- a/Source/WebCore/css/CSSParser.cpp >+++ b/Source/WebCore/css/CSSParser.cpp >@@ -199,9 +199,10 @@ static bool hasPrefix(const char* string, unsigned length, const char* prefix) > 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 @@ static bool isFillPositionKeyword(CSSValueID value) > 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 @@ void CSSParser::parse4ValuesFillPosition(CSSParserValueList& valueList, RefPtr<C > 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 @@ void CSSParser::parse3ValuesFillPosition(CSSParserValueList& valueList, RefPtr<C > 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 @@ void CSSParser::parse3ValuesFillPosition(CSSParserValueList& valueList, RefPtr<C > 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 @@ void CSSParser::parse3ValuesFillPosition(CSSParserValueList& valueList, RefPtr<C > 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 @@ void CSSParser::parseFillPosition(CSSParserValueList& valueList, RefPtr<CSSValue > 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 @@ PassRefPtr<CSSValue> CSSParser::parseFillSize(CSSPropertyID propId, bool& allowC > > 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 @@ bool CSSParser::parseBorderImageRepeat(RefPtr<CSSValue>& result) > } else > secondValue = firstValue; > >- result = createPrimitiveValuePair(firstValue, secondValue); >+ result = createPrimitiveValuePair(WTF::move(firstValue), WTF::move(secondValue)); > return true; > } > >diff --git a/Source/WebCore/css/CSSParser.h b/Source/WebCore/css/CSSParser.h >index 4e53008fe4ca3fbc1e93f880db35f8621c7501cf..8e1fc0611c28f2ca1df4ffdcf2652b1d1f1767be 100644 >--- a/Source/WebCore/css/CSSParser.h >+++ b/Source/WebCore/css/CSSParser.h >@@ -167,8 +167,8 @@ public: > 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); >diff --git a/Source/WebCore/css/Pair.h b/Source/WebCore/css/Pair.h >index 2c6cd01e765e0ebf5785e7b990ed748cf98fdcf0..f5b5d1f259e7723e1b50866fd810590793bf31c9 100644 >--- a/Source/WebCore/css/Pair.h >+++ b/Source/WebCore/css/Pair.h >@@ -1,6 +1,6 @@ > /* > * (C) 1999-2003 Lars Knoll (knoll@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 @@ public: > { > 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 @@ public: > 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) > {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 146852
: 256605