diff options
Diffstat (limited to 'Source/WebCore/websockets')
-rw-r--r-- | Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h | 2 | ||||
-rw-r--r-- | Source/WebCore/websockets/WebSocket.cpp | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h b/Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h index 4099615..683ee84 100644 --- a/Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h +++ b/Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h @@ -42,7 +42,7 @@ namespace WebCore { -class ThreadableWebSocketChannelClientWrapper : public ThreadSafeShared<ThreadableWebSocketChannelClientWrapper> { +class ThreadableWebSocketChannelClientWrapper : public ThreadSafeRefCounted<ThreadableWebSocketChannelClientWrapper> { public: static PassRefPtr<ThreadableWebSocketChannelClientWrapper> create(WebSocketChannelClient* client) { diff --git a/Source/WebCore/websockets/WebSocket.cpp b/Source/WebCore/websockets/WebSocket.cpp index e15d079..5dfd48b 100644 --- a/Source/WebCore/websockets/WebSocket.cpp +++ b/Source/WebCore/websockets/WebSocket.cpp @@ -283,7 +283,10 @@ void WebSocket::didClose(unsigned long unhandledBufferedAmount) m_bufferedAmountAfterClose += unhandledBufferedAmount; ASSERT(scriptExecutionContext()); dispatchEvent(Event::create(eventNames().closeEvent, false, false)); - m_channel = 0; + if (m_channel) { + m_channel->disconnect(); + m_channel = 0; + } if (hasPendingActivity()) ActiveDOMObject::unsetPendingActivity(this); } |