Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: ipc/mojo/ipc_channel_mojo.cc

Issue 599333002: ChannelMojo: Handle when ChannelMojo outlives ChannelMojoHost (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ipc/mojo/ipc_channel_mojo.cc
diff --git a/ipc/mojo/ipc_channel_mojo.cc b/ipc/mojo/ipc_channel_mojo.cc
index e61a90e6851bab3f2e983df7d17c37a6dada544f..b5c452990e7b559af5ed9f28f7af9331e9582ab6 100644
--- a/ipc/mojo/ipc_channel_mojo.cc
+++ b/ipc/mojo/ipc_channel_mojo.cc
@@ -83,7 +83,7 @@ ChannelMojo::ChannelMojo(ChannelMojoHost* host,
const ChannelHandle& handle,
Mode mode,
Listener* listener)
- : host_(host),
+ : host_(host ? host->ToWeakPtr() : base::WeakPtr<ChannelMojoHost>()),
viettrungluu 2014/09/25 19:38:34 Maybe it's better to just do in the body: if (hos
Hajime Morrita 2014/09/25 22:00:03 Done.
mode_(mode),
listener_(listener),
peer_pid_(base::kNullProcessId),
@@ -92,14 +92,11 @@ ChannelMojo::ChannelMojo(ChannelMojoHost* host,
// ChannelMojo from a different thread.
bootstrap_ = MojoBootstrap::Create(handle, mode, this);
if (host_)
- host_->OnChannelCreated(this);
+ host_->OnChannelCreated(weak_factory_.GetWeakPtr());
}
ChannelMojo::~ChannelMojo() {
Close();
-
- if (host_)
- host_->OnChannelDestroyed();
}
void ChannelMojo::InitControlReader(

Powered by Google App Engine
This is Rietveld 408576698