Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Unified Diff: third_party/WebKit/Source/core/css/MediaList.h

Issue 2873433003: Move MediaQuery classes off BlinkGC heap (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/css/MediaList.h
diff --git a/third_party/WebKit/Source/core/css/MediaList.h b/third_party/WebKit/Source/core/css/MediaList.h
index 360b92d1691884f21fb17588a1188ebca44ca0f4..8bece5ea585034586dbbcd1f3a618a5c4a91dc95 100644
--- a/third_party/WebKit/Source/core/css/MediaList.h
+++ b/third_party/WebKit/Source/core/css/MediaList.h
@@ -24,6 +24,7 @@
#include "bindings/core/v8/ScriptWrappable.h"
#include "core/CoreExport.h"
+#include "core/css/MediaQuery.h"
#include "core/dom/ExceptionCode.h"
#include "platform/heap/Handle.h"
#include "wtf/Forward.h"
@@ -38,24 +39,28 @@ class ExceptionState;
class MediaList;
class MediaQuery;
-class CORE_EXPORT MediaQuerySet : public GarbageCollected<MediaQuerySet> {
+class CORE_EXPORT MediaQuerySet : public RefCounted<MediaQuerySet> {
public:
- static MediaQuerySet* create() { return new MediaQuerySet(); }
- static MediaQuerySet* create(const String& mediaString);
+ static RefPtr<MediaQuerySet> create() {
+ return adoptRef(new MediaQuerySet());
+ }
+ static RefPtr<MediaQuerySet> create(const String& mediaString);
bool set(const String&);
bool add(const String&);
bool remove(const String&);
- void addMediaQuery(MediaQuery*);
+ void addMediaQuery(std::unique_ptr<MediaQuery>);
- const HeapVector<Member<MediaQuery>>& queryVector() const {
+ const Vector<std::unique_ptr<MediaQuery>>& queryVector() const {
return m_queries;
}
String mediaText() const;
- MediaQuerySet* copy() const { return new MediaQuerySet(*this); }
+ RefPtr<MediaQuerySet> copy() const {
+ return adoptRef(new MediaQuerySet(*this));
+ }
DECLARE_TRACE();
@@ -63,21 +68,22 @@ class CORE_EXPORT MediaQuerySet : public GarbageCollected<MediaQuerySet> {
MediaQuerySet();
MediaQuerySet(const MediaQuerySet&);
- HeapVector<Member<MediaQuery>> m_queries;
+ Vector<std::unique_ptr<MediaQuery>> m_queries;
};
-class MediaList final : public GarbageCollected<MediaList>,
+class MediaList final : public GarbageCollectedFinalized<MediaList>,
public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
- static MediaList* create(MediaQuerySet* mediaQueries,
+ static MediaList* create(RefPtr<MediaQuerySet> mediaQueries,
CSSStyleSheet* parentSheet) {
- return new MediaList(mediaQueries, parentSheet);
+ return new MediaList(std::move(mediaQueries), parentSheet);
}
- static MediaList* create(MediaQuerySet* mediaQueries, CSSRule* parentRule) {
- return new MediaList(mediaQueries, parentRule);
+ static MediaList* create(RefPtr<MediaQuerySet> mediaQueries,
+ CSSRule* parentRule) {
+ return new MediaList(std::move(mediaQueries), parentRule);
}
unsigned length() const { return m_mediaQueries->queryVector().size(); }
@@ -94,15 +100,15 @@ class MediaList final : public GarbageCollected<MediaList>,
const MediaQuerySet* queries() const { return m_mediaQueries.get(); }
- void reattach(MediaQuerySet*);
+ void reattach(RefPtr<MediaQuerySet>);
DECLARE_TRACE();
private:
- MediaList(MediaQuerySet*, CSSStyleSheet* parentSheet);
- MediaList(MediaQuerySet*, CSSRule* parentRule);
+ MediaList(RefPtr<MediaQuerySet>, CSSStyleSheet* parentSheet);
+ MediaList(RefPtr<MediaQuerySet>, CSSRule* parentRule);
- Member<MediaQuerySet> m_mediaQueries;
+ RefPtr<MediaQuerySet> m_mediaQueries;
// Cleared in ~CSSStyleSheet destructor when oilpan is not enabled.
Member<CSSStyleSheet> m_parentStyleSheet;
// Cleared in the ~CSSMediaRule and ~CSSImportRule destructors when oilpan is
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSStyleSheet.cpp ('k') | third_party/WebKit/Source/core/css/MediaList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698