Index: base/message_loop/message_loop.cc |
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc |
index e14ce859a6d925a512a11b6a89775209cebe2c87..229eae7bf8e7ec91c414c4fcc3e56e9a8bfbb086 100644 |
--- a/base/message_loop/message_loop.cc |
+++ b/base/message_loop/message_loop.cc |
@@ -125,7 +125,7 @@ MessageLoop::MessageLoop(Type type) |
run_loop_(NULL) { |
Init(); |
- pump_.reset(CreateMessagePumpForType(type)); |
+ pump_ = CreateMessagePumpForType(type).Pass(); |
} |
MessageLoop::MessageLoop(scoped_ptr<MessagePump> pump) |
@@ -201,27 +201,27 @@ bool MessageLoop::InitMessagePumpForUIFactory(MessagePumpFactory* factory) { |
} |
// 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 @@ MessagePump* MessageLoop::CreateMessagePumpForType(Type type) { |
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( |