Index: third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp |
diff --git a/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp b/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp |
index f8c46e42890a51bbaa38469c6fac4415176431ac..a05ca2f9e3585b31795cf6e9b94021a648ba0219 100644 |
--- a/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp |
+++ b/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp |
@@ -112,42 +112,41 @@ static bool ApplyRestrictor(MediaQuery::RestrictorType r, bool value) { |
} |
bool MediaQueryEvaluator::Eval( |
- const MediaQuery* query, |
+ const MediaQuery& query, |
MediaQueryResultList* viewport_dependent_media_query_results, |
MediaQueryResultList* device_dependent_media_query_results) const { |
- if (!MediaTypeMatch(query->MediaType())) |
- return ApplyRestrictor(query->Restrictor(), false); |
+ if (!MediaTypeMatch(query.MediaType())) |
+ return ApplyRestrictor(query.Restrictor(), false); |
- const ExpressionHeapVector& expressions = query->Expressions(); |
+ const ExpressionHeapVector& expressions = query.Expressions(); |
// Iterate through expressions, stop if any of them eval to false (AND |
// semantics). |
size_t i = 0; |
for (; i < expressions.size(); ++i) { |
- bool expr_result = Eval(expressions.at(i).Get()); |
+ bool expr_result = Eval(expressions.at(i)); |
if (viewport_dependent_media_query_results && |
- expressions.at(i)->IsViewportDependent()) |
+ expressions.at(i).IsViewportDependent()) { |
viewport_dependent_media_query_results->push_back( |
- new MediaQueryResult(*expressions.at(i), expr_result)); |
+ MediaQueryResult(expressions.at(i), expr_result)); |
+ } |
if (device_dependent_media_query_results && |
- expressions.at(i)->IsDeviceDependent()) |
+ expressions.at(i).IsDeviceDependent()) { |
device_dependent_media_query_results->push_back( |
- new MediaQueryResult(*expressions.at(i), expr_result)); |
+ MediaQueryResult(expressions.at(i), expr_result)); |
+ } |
if (!expr_result) |
break; |
} |
// Assume true if we are at the end of the list, otherwise assume false. |
- return ApplyRestrictor(query->Restrictor(), expressions.size() == i); |
+ return ApplyRestrictor(query.Restrictor(), expressions.size() == i); |
} |
bool MediaQueryEvaluator::Eval( |
- const MediaQuerySet* query_set, |
+ const MediaQuerySet& query_set, |
MediaQueryResultList* viewport_dependent_media_query_results, |
MediaQueryResultList* device_dependent_media_query_results) const { |
- if (!query_set) |
- return true; |
- |
- const HeapVector<Member<MediaQuery>>& queries = query_set->QueryVector(); |
+ const Vector<std::unique_ptr<MediaQuery>>& queries = query_set.QueryVector(); |
if (!queries.size()) |
return true; // Empty query list evaluates to true. |
@@ -155,8 +154,8 @@ bool MediaQueryEvaluator::Eval( |
bool result = false; |
for (size_t i = 0; i < queries.size() && !result; ++i) { |
// TODO(sof): CHECK() added for crbug.com/699269 diagnosis, remove sooner. |
- CHECK_EQ(queries.data(), query_set->QueryVector().data()); |
- result = Eval(queries[i].Get(), viewport_dependent_media_query_results, |
+ CHECK_EQ(queries.data(), query_set.QueryVector().data()); |
+ result = Eval(*queries[i], viewport_dependent_media_query_results, |
device_dependent_media_query_results); |
} |
@@ -809,7 +808,7 @@ void MediaQueryEvaluator::Init() { |
#undef ADD_TO_FUNCTIONMAP |
} |
-bool MediaQueryEvaluator::Eval(const MediaQueryExp* expr) const { |
+bool MediaQueryEvaluator::Eval(const MediaQueryExp& expr) const { |
if (!media_values_ || !media_values_->HasValues()) |
return true; |
@@ -817,9 +816,9 @@ bool MediaQueryEvaluator::Eval(const MediaQueryExp* expr) const { |
// Call the media feature evaluation function. Assume no prefix and let |
// trampoline functions override the prefix if prefix is used. |
- EvalFunc func = g_function_map->at(expr->MediaFeature().Impl()); |
+ EvalFunc func = g_function_map->at(expr.MediaFeature().Impl()); |
if (func) |
- return func(expr->ExpValue(), kNoPrefix, *media_values_); |
+ return func(expr.ExpValue(), kNoPrefix, *media_values_); |
return false; |
} |