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

Side by Side Diff: mojo/embedder/embedder.cc

Issue 502573006: Remove implicit conversions from scoped_refptr to T* in mojo/ (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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/embedder/embedder.h" 5 #include "mojo/embedder/embedder.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 system::Core* core, 82 system::Core* core,
83 ScopedPlatformHandle platform_handle, 83 ScopedPlatformHandle platform_handle,
84 scoped_ptr<ChannelInfo> channel_info, 84 scoped_ptr<ChannelInfo> channel_info,
85 scoped_refptr<system::MessagePipe> message_pipe, 85 scoped_refptr<system::MessagePipe> message_pipe,
86 DidCreateChannelCallback callback, 86 DidCreateChannelCallback callback,
87 scoped_refptr<base::TaskRunner> callback_thread_task_runner) { 87 scoped_refptr<base::TaskRunner> callback_thread_task_runner) {
88 channel_info->channel = 88 channel_info->channel =
89 MakeChannel(core, platform_handle.Pass(), message_pipe); 89 MakeChannel(core, platform_handle.Pass(), message_pipe);
90 90
91 // Hand the channel back to the embedder. 91 // Hand the channel back to the embedder.
92 if (callback_thread_task_runner) { 92 if (callback_thread_task_runner.get()) {
93 callback_thread_task_runner->PostTask( 93 callback_thread_task_runner->PostTask(
94 FROM_HERE, base::Bind(callback, channel_info.release())); 94 FROM_HERE, base::Bind(callback, channel_info.release()));
95 } else { 95 } else {
96 callback.Run(channel_info.release()); 96 callback.Run(channel_info.release());
97 } 97 }
98 } 98 }
99 99
100 } // namespace 100 } // namespace
101 101
102 void Init(scoped_ptr<PlatformSupport> platform_support) { 102 void Init(scoped_ptr<PlatformSupport> platform_support) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 if (rv.is_valid()) { 148 if (rv.is_valid()) {
149 io_thread_task_runner->PostTask(FROM_HERE, 149 io_thread_task_runner->PostTask(FROM_HERE,
150 base::Bind(&CreateChannelHelper, 150 base::Bind(&CreateChannelHelper,
151 base::Unretained(core), 151 base::Unretained(core),
152 base::Passed(&platform_handle), 152 base::Passed(&platform_handle),
153 base::Passed(&channel_info), 153 base::Passed(&channel_info),
154 remote_message_pipe.second, 154 remote_message_pipe.second,
155 callback, 155 callback,
156 callback_thread_task_runner)); 156 callback_thread_task_runner));
157 } else { 157 } else {
158 (callback_thread_task_runner ? callback_thread_task_runner 158 (callback_thread_task_runner.get() ? callback_thread_task_runner
159 : io_thread_task_runner) 159 : io_thread_task_runner)
160 ->PostTask(FROM_HERE, base::Bind(callback, channel_info.release())); 160 ->PostTask(FROM_HERE, base::Bind(callback, channel_info.release()));
161 } 161 }
162 162
163 return rv.Pass(); 163 return rv.Pass();
164 } 164 }
165 165
166 void DestroyChannelOnIOThread(ChannelInfo* channel_info) { 166 void DestroyChannelOnIOThread(ChannelInfo* channel_info) {
167 DCHECK(channel_info); 167 DCHECK(channel_info);
168 if (!channel_info->channel) { 168 if (!channel_info->channel.get()) {
169 // Presumably, |Init()| on the channel failed. 169 // Presumably, |Init()| on the channel failed.
170 return; 170 return;
171 } 171 }
172 172
173 channel_info->channel->Shutdown(); 173 channel_info->channel->Shutdown();
174 delete channel_info; 174 delete channel_info;
175 } 175 }
176 176
177 // TODO(vtl): Write tests for this. 177 // TODO(vtl): Write tests for this.
178 void DestroyChannel(ChannelInfo* channel_info) { 178 void DestroyChannel(ChannelInfo* channel_info) {
179 DCHECK(channel_info); 179 DCHECK(channel_info);
180 DCHECK(channel_info->io_thread_task_runner); 180 DCHECK(channel_info->io_thread_task_runner.get());
181 181
182 if (!channel_info->channel) { 182 if (!channel_info->channel.get()) {
183 // Presumably, |Init()| on the channel failed. 183 // Presumably, |Init()| on the channel failed.
184 return; 184 return;
185 } 185 }
186 186
187 channel_info->channel->WillShutdownSoon(); 187 channel_info->channel->WillShutdownSoon();
188 channel_info->io_thread_task_runner->PostTask( 188 channel_info->io_thread_task_runner->PostTask(
189 FROM_HERE, base::Bind(&DestroyChannelOnIOThread, channel_info)); 189 FROM_HERE, base::Bind(&DestroyChannelOnIOThread, channel_info));
190 } 190 }
191 191
192 void WillDestroyChannelSoon(ChannelInfo* channel_info) { 192 void WillDestroyChannelSoon(ChannelInfo* channel_info) {
(...skipping 23 matching lines...) Expand all
216 } 216 }
217 217
218 MojoResult PassWrappedPlatformHandle(MojoHandle platform_handle_wrapper_handle, 218 MojoResult PassWrappedPlatformHandle(MojoHandle platform_handle_wrapper_handle,
219 ScopedPlatformHandle* platform_handle) { 219 ScopedPlatformHandle* platform_handle) {
220 DCHECK(platform_handle); 220 DCHECK(platform_handle);
221 221
222 system::Core* core = system::entrypoints::GetCore(); 222 system::Core* core = system::entrypoints::GetCore();
223 DCHECK(core); 223 DCHECK(core);
224 scoped_refptr<system::Dispatcher> dispatcher( 224 scoped_refptr<system::Dispatcher> dispatcher(
225 core->GetDispatcher(platform_handle_wrapper_handle)); 225 core->GetDispatcher(platform_handle_wrapper_handle));
226 if (!dispatcher) 226 if (!dispatcher.get())
227 return MOJO_RESULT_INVALID_ARGUMENT; 227 return MOJO_RESULT_INVALID_ARGUMENT;
228 228
229 if (dispatcher->GetType() != system::Dispatcher::kTypePlatformHandle) 229 if (dispatcher->GetType() != system::Dispatcher::kTypePlatformHandle)
230 return MOJO_RESULT_INVALID_ARGUMENT; 230 return MOJO_RESULT_INVALID_ARGUMENT;
231 231
232 *platform_handle = 232 *platform_handle =
233 static_cast<system::PlatformHandleDispatcher*>(dispatcher.get()) 233 static_cast<system::PlatformHandleDispatcher*>(dispatcher.get())
234 ->PassPlatformHandle() 234 ->PassPlatformHandle()
235 .Pass(); 235 .Pass();
236 return MOJO_RESULT_OK; 236 return MOJO_RESULT_OK;
237 } 237 }
238 238
239 } // namespace embedder 239 } // namespace embedder
240 } // namespace mojo 240 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698