Index: Source/modules/mediastream/RTCDataChannel.cpp |
diff --git a/Source/modules/mediastream/RTCDataChannel.cpp b/Source/modules/mediastream/RTCDataChannel.cpp |
index 43e24e8ff655fb5f953b15db69d7cea026a0f45d..01ee63c985618203b2faa416bce8b486b2cb8e8a 100644 |
--- a/Source/modules/mediastream/RTCDataChannel.cpp |
+++ b/Source/modules/mediastream/RTCDataChannel.cpp |
@@ -52,20 +52,20 @@ static void throwNoBlobSupportException(ExceptionState& exceptionState) |
exceptionState.throwDOMException(NotSupportedError, "Blob support not implemented yet"); |
} |
-PassRefPtr<RTCDataChannel> RTCDataChannel::create(ExecutionContext* context, PassOwnPtr<blink::WebRTCDataChannelHandler> handler) |
+PassRefPtrWillBeRawPtr<RTCDataChannel> RTCDataChannel::create(ExecutionContext* context, PassOwnPtr<blink::WebRTCDataChannelHandler> handler) |
{ |
ASSERT(handler); |
- return adoptRef(new RTCDataChannel(context, handler)); |
+ return adoptRefWillBeRefCountedGarbageCollected(new RTCDataChannel(context, handler)); |
} |
-PassRefPtr<RTCDataChannel> RTCDataChannel::create(ExecutionContext* context, blink::WebRTCPeerConnectionHandler* peerConnectionHandler, const String& label, const blink::WebRTCDataChannelInit& init, ExceptionState& exceptionState) |
+PassRefPtrWillBeRawPtr<RTCDataChannel> RTCDataChannel::create(ExecutionContext* context, blink::WebRTCPeerConnectionHandler* peerConnectionHandler, const String& label, const blink::WebRTCDataChannelInit& init, ExceptionState& exceptionState) |
{ |
OwnPtr<blink::WebRTCDataChannelHandler> handler = adoptPtr(peerConnectionHandler->createDataChannel(label, init)); |
if (!handler) { |
exceptionState.throwDOMException(NotSupportedError, "RTCDataChannel is not supported"); |
return nullptr; |
} |
- return adoptRef(new RTCDataChannel(context, handler.release())); |
+ return adoptRefWillBeRefCountedGarbageCollected(new RTCDataChannel(context, handler.release())); |
} |
RTCDataChannel::RTCDataChannel(ExecutionContext* context, PassOwnPtr<blink::WebRTCDataChannelHandler> handler) |
@@ -314,4 +314,9 @@ void RTCDataChannel::scheduledEventTimerFired(Timer<RTCDataChannel>*) |
events.clear(); |
} |
+void RTCDataChannel::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_scheduledEvents); |
+} |
+ |
} // namespace WebCore |