Index: third_party/WebKit/Source/core/css/MediaQuery.cpp |
diff --git a/third_party/WebKit/Source/core/css/MediaQuery.cpp b/third_party/WebKit/Source/core/css/MediaQuery.cpp |
index 3488abac4c0f59386af19087894b8bf394d7ab24..631bff256e1ad324e41e378a5e5c71640b824590 100644 |
--- a/third_party/WebKit/Source/core/css/MediaQuery.cpp |
+++ b/third_party/WebKit/Source/core/css/MediaQuery.cpp |
@@ -61,29 +61,29 @@ String MediaQuery::Serialize() const { |
result.Append(" and "); |
} |
- result.Append(expressions_.at(0)->Serialize()); |
+ result.Append(expressions_.at(0).Serialize()); |
for (size_t i = 1; i < expressions_.size(); ++i) { |
result.Append(" and "); |
- result.Append(expressions_.at(i)->Serialize()); |
+ result.Append(expressions_.at(i).Serialize()); |
} |
return result.ToString(); |
} |
-static bool ExpressionCompare(const Member<MediaQueryExp>& a, |
- const Member<MediaQueryExp>& b) { |
- return CodePointCompare(a->Serialize(), b->Serialize()) < 0; |
+static bool ExpressionCompare(const MediaQueryExp& a, const MediaQueryExp& b) { |
+ return CodePointCompare(a.Serialize(), b.Serialize()) < 0; |
} |
-MediaQuery* MediaQuery::CreateNotAll() { |
- return new MediaQuery(MediaQuery::kNot, MediaTypeNames::all, |
- ExpressionHeapVector()); |
+std::unique_ptr<MediaQuery> MediaQuery::CreateNotAll() { |
+ return WTF::WrapUnique(new MediaQuery(MediaQuery::kNot, MediaTypeNames::all, |
+ ExpressionHeapVector())); |
} |
-MediaQuery* MediaQuery::Create(RestrictorType restrictor, |
- String media_type, |
- ExpressionHeapVector expressions) { |
- return new MediaQuery(restrictor, std::move(media_type), |
- std::move(expressions)); |
+std::unique_ptr<MediaQuery> MediaQuery::Create( |
+ RestrictorType restrictor, |
+ String media_type, |
+ ExpressionHeapVector expressions) { |
+ return WTF::WrapUnique(new MediaQuery(restrictor, std::move(media_type), |
+ std::move(expressions))); |
} |
MediaQuery::MediaQuery(RestrictorType restrictor, |
@@ -95,11 +95,12 @@ MediaQuery::MediaQuery(RestrictorType restrictor, |
NonCopyingSort(expressions_.begin(), expressions_.end(), ExpressionCompare); |
// Remove all duplicated expressions. |
- MediaQueryExp* key = 0; |
+ MediaQueryExp key = MediaQueryExp::Invalid(); |
for (int i = expressions_.size() - 1; i >= 0; --i) { |
- MediaQueryExp* exp = expressions_.at(i).Get(); |
- |
- if (key && *exp == *key) |
+ MediaQueryExp exp = expressions_.at(i); |
+ CHECK(exp.IsValid()); |
+ CHECK(String() == String()); |
sof
2017/04/26 09:16:11
accidental addition?
keishi
2017/04/26 09:44:35
Oops. Sorry.
|
+ if (exp == key) |
expressions_.erase(i); |
else |
key = exp; |
@@ -112,7 +113,7 @@ MediaQuery::MediaQuery(const MediaQuery& o) |
serialization_cache_(o.serialization_cache_) { |
expressions_.ReserveInitialCapacity(o.expressions_.size()); |
for (unsigned i = 0; i < o.expressions_.size(); ++i) |
- expressions_.push_back(o.expressions_[i]->Copy()); |
+ expressions_.push_back(o.expressions_[i]); |
} |
MediaQuery::~MediaQuery() {} |
@@ -130,8 +131,4 @@ String MediaQuery::CssText() const { |
return serialization_cache_; |
} |
-DEFINE_TRACE(MediaQuery) { |
- visitor->Trace(expressions_); |
-} |
- |
} // namespace blink |