diff options
Diffstat (limited to 'WebCore/css/MediaQuery.cpp')
-rw-r--r-- | WebCore/css/MediaQuery.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/WebCore/css/MediaQuery.cpp b/WebCore/css/MediaQuery.cpp index b71706c..77a79ad 100644 --- a/WebCore/css/MediaQuery.cpp +++ b/WebCore/css/MediaQuery.cpp @@ -31,8 +31,7 @@ #include "MediaQueryExp.h" #include "StringBuilder.h" - -#include <algorithm> +#include <wtf/NonCopyingSort.h> namespace WebCore { @@ -70,23 +69,24 @@ String MediaQuery::serialize() const return result.toString(); } -static bool expressionCompare(const MediaQueryExp* a, const MediaQueryExp* b) +static bool expressionCompare(const OwnPtr<MediaQueryExp>& a, const OwnPtr<MediaQueryExp>& b) { return codePointCompare(a->serialize(), b->serialize()) < 0; } -MediaQuery::MediaQuery(Restrictor r, const String& mediaType, PassOwnPtr<Vector<MediaQueryExp*> > exprs) + +MediaQuery::MediaQuery(Restrictor r, const String& mediaType, PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > > exprs) : m_restrictor(r) , m_mediaType(mediaType.lower()) , m_expressions(exprs) , m_ignored(false) { if (!m_expressions) { - m_expressions = new Vector<MediaQueryExp*>; + m_expressions = adoptPtr(new Vector<OwnPtr<MediaQueryExp> >); return; } - std::sort(m_expressions->begin(), m_expressions->end(), expressionCompare); + nonCopyingSort(m_expressions->begin(), m_expressions->end(), expressionCompare); // remove all duplicated expressions String key; @@ -95,19 +95,16 @@ MediaQuery::MediaQuery(Restrictor r, const String& mediaType, PassOwnPtr<Vector< // if not all of the expressions is valid the media query must be ignored. if (!m_ignored) m_ignored = !m_expressions->at(i)->isValid(); - - if (m_expressions->at(i)->serialize() == key) { - MediaQueryExp* item = m_expressions->at(i); + + if (m_expressions->at(i)->serialize() == key) m_expressions->remove(i); - delete item; - } else + else key = m_expressions->at(i)->serialize(); } } MediaQuery::~MediaQuery() { - deleteAllValues(*m_expressions); } // http://dev.w3.org/csswg/cssom/#compare-media-queries |