Index: Source/core/css/MediaList.cpp |
diff --git a/Source/core/css/MediaList.cpp b/Source/core/css/MediaList.cpp |
index 11ae84b35d4a9b81b01b72d0a684dbc8633b60ca..d0698cef119c8a313756f548010ba4af84ba036b 100644 |
--- a/Source/core/css/MediaList.cpp |
+++ b/Source/core/css/MediaList.cpp |
@@ -57,8 +57,7 @@ MediaQuerySet::MediaQuerySet() |
} |
MediaQuerySet::MediaQuerySet(const MediaQuerySet& o) |
- : RefCounted<MediaQuerySet>() |
- , m_queries(o.m_queries.size()) |
+ : m_queries(o.m_queries.size()) |
{ |
for (unsigned i = 0; i < m_queries.size(); ++i) |
m_queries[i] = o.m_queries[i]->copy(); |
@@ -68,7 +67,7 @@ MediaQuerySet::~MediaQuerySet() |
{ |
} |
-PassRefPtr<MediaQuerySet> MediaQuerySet::create(const String& mediaString) |
+PassRefPtrWillBeRawPtr<MediaQuerySet> MediaQuerySet::create(const String& mediaString) |
{ |
if (mediaString.isEmpty()) |
return MediaQuerySet::create(); |
@@ -79,7 +78,7 @@ PassRefPtr<MediaQuerySet> MediaQuerySet::create(const String& mediaString) |
bool MediaQuerySet::set(const String& mediaString) |
{ |
- RefPtr<MediaQuerySet> result = create(mediaString); |
+ RefPtrWillBeRawPtr<MediaQuerySet> result = create(mediaString); |
m_queries.swap(result->m_queries); |
return true; |
} |
@@ -89,13 +88,13 @@ bool MediaQuerySet::add(const String& queryString) |
// To "parse a media query" for a given string means to follow "the parse |
// a media query list" steps and return "null" if more than one media query |
// is returned, or else the returned media query. |
- RefPtr<MediaQuerySet> result = create(queryString); |
+ RefPtrWillBeRawPtr<MediaQuerySet> result = create(queryString); |
// Only continue if exactly one media query is found, as described above. |
if (result->m_queries.size() != 1) |
return true; |
- OwnPtr<MediaQuery> newQuery = result->m_queries[0].release(); |
+ OwnPtrWillBeRawPtr<MediaQuery> newQuery = result->m_queries[0].release(); |
ASSERT(newQuery); |
// If comparing with any of the media queries in the collection of media |
@@ -115,13 +114,13 @@ bool MediaQuerySet::remove(const String& queryStringToRemove) |
// To "parse a media query" for a given string means to follow "the parse |
// a media query list" steps and return "null" if more than one media query |
// is returned, or else the returned media query. |
- RefPtr<MediaQuerySet> result = create(queryStringToRemove); |
+ RefPtrWillBeRawPtr<MediaQuerySet> result = create(queryStringToRemove); |
// Only continue if exactly one media query is found, as described above. |
if (result->m_queries.size() != 1) |
return true; |
- OwnPtr<MediaQuery> newQuery = result->m_queries[0].release(); |
+ OwnPtrWillBeRawPtr<MediaQuery> newQuery = result->m_queries[0].release(); |
ASSERT(newQuery); |
// Remove any media query from the collection of media queries for which |
@@ -139,7 +138,7 @@ bool MediaQuerySet::remove(const String& queryStringToRemove) |
return found; |
} |
-void MediaQuerySet::addMediaQuery(PassOwnPtr<MediaQuery> mediaQuery) |
+void MediaQuerySet::addMediaQuery(PassOwnPtrWillBeRawPtr<MediaQuery> mediaQuery) |
{ |
m_queries.append(mediaQuery); |
} |
@@ -159,10 +158,19 @@ String MediaQuerySet::mediaText() const |
return text.toString(); |
} |
+void MediaQuerySet::trace(Visitor* visitor) |
+{ |
+ // We don't support tracing of vectors of OwnPtrs (ie. OwnPtr<Vector<OwnPtr<MediaQuery> > >). |
+ // Since this is a transitional object we are just ifdef'ing it out when oilpan is not enabled. |
+#if ENABLE(OILPAN) |
+ visitor->trace(m_queries); |
+#endif |
+} |
+ |
MediaList::MediaList(MediaQuerySet* mediaQueries, CSSStyleSheet* parentSheet) |
: m_mediaQueries(mediaQueries) |
, m_parentStyleSheet(parentSheet) |
- , m_parentRule(0) |
+ , m_parentRule(nullptr) |
{ |
} |
@@ -189,7 +197,7 @@ void MediaList::setMediaText(const String& value) |
String MediaList::item(unsigned index) const |
{ |
- const Vector<OwnPtr<MediaQuery> >& queries = m_mediaQueries->queryVector(); |
+ const WillBeHeapVector<OwnPtrWillBeMember<MediaQuery> >& queries = m_mediaQueries->queryVector(); |
if (index < queries.size()) |
return queries[index]->cssText(); |
return String(); |
@@ -228,6 +236,12 @@ void MediaList::reattach(MediaQuerySet* mediaQueries) |
m_mediaQueries = mediaQueries; |
} |
+void MediaList::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_mediaQueries); |
+ visitor->trace(m_parentRule); |
+} |
+ |
static void addResolutionWarningMessageToConsole(Document* document, const String& serializedExpression, const CSSPrimitiveValue* value) |
{ |
ASSERT(document); |
@@ -264,7 +278,7 @@ void reportMediaQueryWarningIfNeeded(Document* document, const MediaQuerySet* me |
if (!mediaQuerySet || !document) |
return; |
- const Vector<OwnPtr<MediaQuery> >& mediaQueries = mediaQuerySet->queryVector(); |
+ const WillBeHeapVector<OwnPtrWillBeMember<MediaQuery> >& mediaQueries = mediaQuerySet->queryVector(); |
const size_t queryCount = mediaQueries.size(); |
if (!queryCount) |
@@ -275,7 +289,7 @@ void reportMediaQueryWarningIfNeeded(Document* document, const MediaQuerySet* me |
if (equalIgnoringCase(query->mediaType(), "print")) |
continue; |
- const ExpressionVector& expressions = query->expressions(); |
+ const ExpressionHeapVector& expressions = query->expressions(); |
for (size_t j = 0; j < expressions.size(); ++j) { |
const MediaQueryExp* expression = expressions.at(j).get(); |
if (isResolutionMediaFeature(expression->mediaFeature())) { |