| 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 e2b803dde3dd69a305066612dd325f2b024fe6a9..3f7b0d999801891e02be09a3befe55cd4f5f12f9 100644
|
| --- a/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp
|
| +++ b/third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp
|
| @@ -111,51 +111,50 @@ static bool applyRestrictor(MediaQuery::RestrictorType r, bool value) {
|
| }
|
|
|
| bool MediaQueryEvaluator::eval(
|
| - const MediaQuery* query,
|
| + const MediaQuery& query,
|
| MediaQueryResultList* viewportDependentMediaQueryResults,
|
| MediaQueryResultList* deviceDependentMediaQueryResults) 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 exprResult = eval(expressions.at(i).get());
|
| + bool exprResult = eval(expressions.at(i));
|
| if (viewportDependentMediaQueryResults &&
|
| - expressions.at(i)->isViewportDependent())
|
| + expressions.at(i).isViewportDependent()) {
|
| viewportDependentMediaQueryResults->push_back(
|
| - new MediaQueryResult(*expressions.at(i), exprResult));
|
| + MediaQueryResult(expressions.at(i), exprResult));
|
| + }
|
| if (deviceDependentMediaQueryResults &&
|
| - expressions.at(i)->isDeviceDependent())
|
| + expressions.at(i).isDeviceDependent()) {
|
| deviceDependentMediaQueryResults->push_back(
|
| - new MediaQueryResult(*expressions.at(i), exprResult));
|
| + MediaQueryResult(expressions.at(i), exprResult));
|
| + }
|
| if (!exprResult)
|
| 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* querySet,
|
| + const MediaQuerySet& querySet,
|
| MediaQueryResultList* viewportDependentMediaQueryResults,
|
| MediaQueryResultList* deviceDependentMediaQueryResults) const {
|
| - if (!querySet)
|
| - return true;
|
| -
|
| - const HeapVector<Member<MediaQuery>>& queries = querySet->queryVector();
|
| + const Vector<std::unique_ptr<MediaQuery>>& queries = querySet.queryVector();
|
| if (!queries.size())
|
| return true; // Empty query list evaluates to true.
|
|
|
| // Iterate over queries, stop if any of them eval to true (OR semantics).
|
| bool result = false;
|
| - for (size_t i = 0; i < queries.size() && !result; ++i)
|
| - result = eval(queries[i].get(), viewportDependentMediaQueryResults,
|
| + for (size_t i = 0; i < queries.size() && !result; ++i) {
|
| + result = eval(*queries[i], viewportDependentMediaQueryResults,
|
| deviceDependentMediaQueryResults);
|
| -
|
| + }
|
| return result;
|
| }
|
|
|
| @@ -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 (!m_mediaValues || !m_mediaValues->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 = gFunctionMap->at(expr->mediaFeature().impl());
|
| + EvalFunc func = gFunctionMap->at(expr.mediaFeature().impl());
|
| if (func)
|
| - return func(expr->expValue(), NoPrefix, *m_mediaValues);
|
| + return func(expr.expValue(), NoPrefix, *m_mediaValues);
|
|
|
| return false;
|
| }
|
|
|