Bug 701383: Websocket fails to delete mOutGoingMessage if closed multiple times. r=mcmanus
This commit is contained in:
@@ -1347,6 +1347,7 @@ WebSocketChannel::PrimeNewOutgoingMessage()
|
||||
if (msgType == kMsgTypeFin) {
|
||||
// This is a demand to create a close message
|
||||
if (mClientClosed) {
|
||||
DeleteCurrentOutGoingMessage();
|
||||
PrimeNewOutgoingMessage();
|
||||
return;
|
||||
}
|
||||
@@ -1515,6 +1516,14 @@ WebSocketChannel::PrimeNewOutgoingMessage()
|
||||
// compression process,
|
||||
}
|
||||
|
||||
void
|
||||
WebSocketChannel::DeleteCurrentOutGoingMessage()
|
||||
{
|
||||
delete mCurrentOut;
|
||||
mCurrentOut = nsnull;
|
||||
mCurrentOutSent = 0;
|
||||
}
|
||||
|
||||
void
|
||||
WebSocketChannel::EnsureHdrOut(PRUint32 size)
|
||||
{
|
||||
@@ -2728,9 +2737,7 @@ WebSocketChannel::OnOutputStreamReady(nsIAsyncOutputStream *aStream)
|
||||
NS_DispatchToMainThread(new CallAcknowledge(this,
|
||||
mCurrentOut->Length()));
|
||||
}
|
||||
delete mCurrentOut;
|
||||
mCurrentOut = nsnull;
|
||||
mCurrentOutSent = 0;
|
||||
DeleteCurrentOutGoingMessage();
|
||||
PrimeNewOutgoingMessage();
|
||||
} else {
|
||||
mCurrentOutSent += amtSent;
|
||||
|
||||
Reference in New Issue
Block a user