diff options
Diffstat (limited to 'content/renderer/p2p')
-rw-r--r-- | content/renderer/p2p/host_address_request.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/content/renderer/p2p/host_address_request.cc b/content/renderer/p2p/host_address_request.cc index 9b11602..57c63ff 100644 --- a/content/renderer/p2p/host_address_request.cc +++ b/content/renderer/p2p/host_address_request.cc @@ -22,6 +22,7 @@ P2PHostAddressRequest::P2PHostAddressRequest(P2PSocketDispatcher* dispatcher) P2PHostAddressRequest::~P2PHostAddressRequest() { DCHECK(state_ == STATE_CREATED || state_ == STATE_FINISHED); + DCHECK(!registered_); } void P2PHostAddressRequest::Request(const std::string& host_name, @@ -64,10 +65,13 @@ void P2PHostAddressRequest::DoUnregister() { void P2PHostAddressRequest::OnResponse(const net::IPAddressNumber& address) { DCHECK(ipc_message_loop_->BelongsToCurrentThread()); - delegate_message_loop_->PostTask(FROM_HERE, base::Bind( - &P2PHostAddressRequest::DeliverResponse, this, address)); + DCHECK(registered_); + dispatcher_->UnregisterHostAddressRequest(request_id_); registered_ = false; + + delegate_message_loop_->PostTask(FROM_HERE, base::Bind( + &P2PHostAddressRequest::DeliverResponse, this, address)); } void P2PHostAddressRequest::DeliverResponse( |