Used scoped_ptr
There was this TODO(sky): convert this and InitMessagePumpForUIFactory() to return a
scoped_ptr.
This patch is for doing the same.
R=darin@chromium.org, sky@chromium.org
Review URL: https://codereview.chromium.org/185413019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255643 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: eed3318eaa4bb5a8c252093c4d9881b4ef14de99
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
index e14ce85..229eae7 100644
--- a/base/message_loop/message_loop.cc
+++ b/base/message_loop/message_loop.cc
@@ -125,7 +125,7 @@
run_loop_(NULL) {
Init();
- pump_.reset(CreateMessagePumpForType(type));
+ pump_ = CreateMessagePumpForType(type).Pass();
}
MessageLoop::MessageLoop(scoped_ptr<MessagePump> pump)
@@ -201,27 +201,27 @@
}
// static
-MessagePump* MessageLoop::CreateMessagePumpForType(Type type) {
+scoped_ptr<MessagePump> MessageLoop::CreateMessagePumpForType(Type type) {
// TODO(rvargas): Get rid of the OS guards.
#if defined(OS_WIN)
-#define MESSAGE_PUMP_UI new MessagePumpForUI()
-#define MESSAGE_PUMP_IO new MessagePumpForIO()
+#define MESSAGE_PUMP_UI scoped_ptr<MessagePump>(new MessagePumpForUI())
+#define MESSAGE_PUMP_IO scoped_ptr<MessagePump>(new MessagePumpForIO())
#elif defined(OS_IOS)
-#define MESSAGE_PUMP_UI MessagePumpMac::Create()
-#define MESSAGE_PUMP_IO new MessagePumpIOSForIO()
+#define MESSAGE_PUMP_UI scoped_ptr<MessagePump>(MessagePumpMac::Create())
+#define MESSAGE_PUMP_IO scoped_ptr<MessagePump>(new MessagePumpIOSForIO())
#elif defined(OS_MACOSX)
-#define MESSAGE_PUMP_UI MessagePumpMac::Create()
-#define MESSAGE_PUMP_IO new MessagePumpLibevent()
+#define MESSAGE_PUMP_UI scoped_ptr<MessagePump>(MessagePumpMac::Create())
+#define MESSAGE_PUMP_IO scoped_ptr<MessagePump>(new MessagePumpLibevent())
#elif defined(OS_NACL)
// Currently NaCl doesn't have a UI MessageLoop.
// TODO(abarth): Figure out if we need this.
-#define MESSAGE_PUMP_UI NULL
+#define MESSAGE_PUMP_UI scoped_ptr<MessagePump>()
// ipc_channel_nacl.cc uses a worker thread to do socket reads currently, and
// doesn't require extra support for watching file descriptors.
-#define MESSAGE_PUMP_IO new MessagePumpDefault()
+#define MESSAGE_PUMP_IO scoped_ptr<MessagePump>(new MessagePumpDefault())
#elif defined(OS_POSIX) // POSIX but not MACOSX.
-#define MESSAGE_PUMP_UI new MessagePumpForUI()
-#define MESSAGE_PUMP_IO new MessagePumpLibevent()
+#define MESSAGE_PUMP_UI scoped_ptr<MessagePump>(new MessagePumpForUI())
+#define MESSAGE_PUMP_IO scoped_ptr<MessagePump>(new MessagePumpLibevent())
#else
#error Not implemented
#endif
@@ -235,14 +235,14 @@
return MESSAGE_PUMP_IO;
#if defined(TOOLKIT_GTK)
if (type == MessageLoop::TYPE_GPU)
- return new MessagePumpX11();
+ return scoped_ptr<MessagePump>(new MessagePumpX11());
#endif
#if defined(OS_ANDROID)
if (type == MessageLoop::TYPE_JAVA)
return MESSAGE_PUMP_UI;
#endif
DCHECK_EQ(MessageLoop::TYPE_DEFAULT, type);
- return new MessagePumpDefault();
+ return scoped_ptr<MessagePump>(new MessagePumpDefault());
}
void MessageLoop::AddDestructionObserver(