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

Unified Diff: third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h

Issue 1363143003: [Oilpan] Move MediaStream{Source|Component|Descriptor} to Oilpan heap (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Work for comments Created 5 years, 3 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/platform/mediastream/MediaStreamDescriptor.h
diff --git a/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h b/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h
index 8665abf41ce7c614230aa18fc43d41b549f06683..fa15ac3ee9c6f53d2ee7690c918027f2f7e8d601 100644
--- a/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h
+++ b/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h
@@ -49,7 +49,7 @@ public:
virtual void removeRemoteTrack(MediaStreamComponent*) = 0;
};
-class PLATFORM_EXPORT MediaStreamDescriptor final : public RefCounted<MediaStreamDescriptor> {
+class PLATFORM_EXPORT MediaStreamDescriptor final : public GarbageCollectedFinalized<MediaStreamDescriptor> {
public:
class ExtraData {
public:
@@ -57,11 +57,11 @@ public:
};
// Only used for AudioDestinationNode.
- static PassRefPtr<MediaStreamDescriptor> create(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources);
+ static MediaStreamDescriptor* create(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources);
- static PassRefPtr<MediaStreamDescriptor> create(const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents);
+ static MediaStreamDescriptor* create(const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents);
- static PassRefPtr<MediaStreamDescriptor> create(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents);
+ static MediaStreamDescriptor* create(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents);
MediaStreamDescriptorClient* client() const { return m_client; }
void setClient(MediaStreamDescriptorClient* client) { m_client = client; }
@@ -74,8 +74,8 @@ public:
unsigned numberOfVideoComponents() const { return m_videoComponents.size(); }
MediaStreamComponent* videoComponent(unsigned index) const { return m_videoComponents[index].get(); }
- void addComponent(PassRefPtr<MediaStreamComponent>);
- void removeComponent(PassRefPtr<MediaStreamComponent>);
+ void addComponent(MediaStreamComponent*);
+ void removeComponent(MediaStreamComponent*);
void addRemoteTrack(MediaStreamComponent*);
void removeRemoteTrack(MediaStreamComponent*);
@@ -89,21 +89,26 @@ public:
ExtraData* extraData() const { return m_extraData.get(); }
void setExtraData(PassOwnPtr<ExtraData> extraData) { m_extraData = extraData; }
+ DECLARE_TRACE();
+
private:
MediaStreamDescriptor(const String& id, const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources);
MediaStreamDescriptor(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents);
+ // |m_client| is cleared in the destructor of the instance which |m_client| itself figures.
+ // Actually, the type of the instance is MediaStream, and it means |m_client| is cleared
+ // in sweeping phase of GC.
MediaStreamDescriptorClient* m_client;
String m_id;
- Vector<RefPtr<MediaStreamComponent>> m_audioComponents;
- Vector<RefPtr<MediaStreamComponent>> m_videoComponents;
+ HeapVector<Member<MediaStreamComponent>> m_audioComponents;
+ HeapVector<Member<MediaStreamComponent>> m_videoComponents;
bool m_active;
bool m_ended;
OwnPtr<ExtraData> m_extraData;
};
-typedef Vector<RefPtr<MediaStreamDescriptor>> MediaStreamDescriptorVector;
+typedef HeapVector<Member<MediaStreamDescriptor>> MediaStreamDescriptorVector;
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698