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 6cb9a0c1cb441641a5a905f8001cdad2bfff509f..8665abf41ce7c614230aa18fc43d41b549f06683 100644 |
--- a/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h |
+++ b/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.h |
@@ -40,17 +40,16 @@ |
namespace blink { |
-class PLATFORM_EXPORT MediaStreamDescriptorClient : public GarbageCollectedMixin { |
+class PLATFORM_EXPORT MediaStreamDescriptorClient { |
public: |
virtual ~MediaStreamDescriptorClient() { } |
virtual void streamEnded() = 0; |
virtual void addRemoteTrack(MediaStreamComponent*) = 0; |
virtual void removeRemoteTrack(MediaStreamComponent*) = 0; |
- DEFINE_INLINE_VIRTUAL_TRACE() { } |
}; |
-class PLATFORM_EXPORT MediaStreamDescriptor final : public GarbageCollectedFinalized<MediaStreamDescriptor> { |
+class PLATFORM_EXPORT MediaStreamDescriptor final : public RefCounted<MediaStreamDescriptor> { |
public: |
class ExtraData { |
public: |
@@ -58,11 +57,11 @@ |
}; |
// Only used for AudioDestinationNode. |
- static MediaStreamDescriptor* create(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources); |
+ static PassRefPtr<MediaStreamDescriptor> create(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources); |
- static MediaStreamDescriptor* create(const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); |
+ static PassRefPtr<MediaStreamDescriptor> create(const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); |
- static MediaStreamDescriptor* create(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); |
+ static PassRefPtr<MediaStreamDescriptor> create(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); |
MediaStreamDescriptorClient* client() const { return m_client; } |
void setClient(MediaStreamDescriptorClient* client) { m_client = client; } |
@@ -75,8 +74,8 @@ |
unsigned numberOfVideoComponents() const { return m_videoComponents.size(); } |
MediaStreamComponent* videoComponent(unsigned index) const { return m_videoComponents[index].get(); } |
- void addComponent(MediaStreamComponent*); |
- void removeComponent(MediaStreamComponent*); |
+ void addComponent(PassRefPtr<MediaStreamComponent>); |
+ void removeComponent(PassRefPtr<MediaStreamComponent>); |
void addRemoteTrack(MediaStreamComponent*); |
void removeRemoteTrack(MediaStreamComponent*); |
@@ -90,26 +89,21 @@ |
ExtraData* extraData() const { return m_extraData.get(); } |
void setExtraData(PassOwnPtr<ExtraData> extraData) { m_extraData = extraData; } |
- // |m_extraData| may hold pointers to GC objects, and it may touch them in destruction. |
- // So this class is eagerly finalized to finalize |m_extraData| promptly. |
- EAGERLY_FINALIZE(); |
- DECLARE_TRACE(); |
- |
private: |
MediaStreamDescriptor(const String& id, const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources); |
MediaStreamDescriptor(const String& id, const MediaStreamComponentVector& audioComponents, const MediaStreamComponentVector& videoComponents); |
- Member<MediaStreamDescriptorClient> m_client; |
+ MediaStreamDescriptorClient* m_client; |
String m_id; |
- HeapVector<Member<MediaStreamComponent>> m_audioComponents; |
- HeapVector<Member<MediaStreamComponent>> m_videoComponents; |
+ Vector<RefPtr<MediaStreamComponent>> m_audioComponents; |
+ Vector<RefPtr<MediaStreamComponent>> m_videoComponents; |
bool m_active; |
bool m_ended; |
OwnPtr<ExtraData> m_extraData; |
}; |
-typedef HeapVector<Member<MediaStreamDescriptor>> MediaStreamDescriptorVector; |
+typedef Vector<RefPtr<MediaStreamDescriptor>> MediaStreamDescriptorVector; |
} // namespace blink |