Index: mojo/application/public/cpp/lib/application_connection.cc |
diff --git a/mojo/application/public/cpp/lib/application_connection.cc b/mojo/application/public/cpp/lib/application_connection.cc |
index a76757f552bbb0b288f565af06644fe9a7d41f6d..c286c85987228681df09df34c42f733c4de45bcc 100644 |
--- a/mojo/application/public/cpp/lib/application_connection.cc |
+++ b/mojo/application/public/cpp/lib/application_connection.cc |
@@ -4,9 +4,25 @@ |
#include "mojo/application/public/cpp/application_connection.h" |
+#include "base/logging.h" |
+ |
namespace mojo { |
+ApplicationConnection::ApplicationConnection() : connection_closed_(false) { |
+} |
+ |
+void ApplicationConnection::CloseConnection() { |
+ if (connection_closed_) |
+ return; |
+ OnCloseConnection(); |
+ connection_closed_ = true; |
+ delete this; |
+} |
+ |
ApplicationConnection::~ApplicationConnection() { |
+ // If this DCHECK fails then something has tried to delete this object without |
+ // calling CloseConnection. |
+ DCHECK(connection_closed_); |
} |
} // namespace mojo |