| Index: mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
|
| diff --git a/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc b/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
|
| index 1970e9c8e550c485636fc89f739dcf3ceeba484c..5e1978d2086eb445415d517379438ee9e8ceed43 100644
|
| --- a/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
|
| +++ b/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
|
| @@ -266,12 +266,18 @@ void InterfaceEndpointClient::NotifyError() {
|
| if (encountered_error_)
|
| return;
|
| encountered_error_ = true;
|
| +
|
| + // The callbacks may hold on to resources. There is no need to keep them any
|
| + // longer.
|
| + async_responders_.clear();
|
| +
|
| if (!error_handler_.is_null())
|
| error_handler_.Run();
|
| }
|
|
|
| bool InterfaceEndpointClient::HandleValidatedMessage(Message* message) {
|
| DCHECK_EQ(handle_.id(), message->interface_id());
|
| + DCHECK(!encountered_error_);
|
|
|
| if (message->has_flag(Message::kFlagExpectsResponse)) {
|
| if (!incoming_receiver_)
|
|
|