Index: base/message_loop.h |
diff --git a/base/message_loop.h b/base/message_loop.h |
index 28ccd4eefa825460b9c3e20b50dc52d0e7c9d49b..02f4840a6d6b130517bb78775e484268a00bef81 100644 |
--- a/base/message_loop.h |
+++ b/base/message_loop.h |
@@ -14,6 +14,7 @@ |
#include "base/callback_forward.h" |
#include "base/location.h" |
#include "base/memory/ref_counted.h" |
+#include "base/message_loop_helpers.h" |
#include "base/message_loop_proxy.h" |
#include "base/message_pump.h" |
#include "base/observer_list.h" |
@@ -208,7 +209,8 @@ class BASE_EXPORT MessageLoop : public base::MessagePump::Delegate { |
// from RefCountedThreadSafe<T>! |
template <class T> |
void DeleteSoon(const tracked_objects::Location& from_here, const T* object) { |
- PostNonNestableTask(from_here, new DeleteTask<T>(object)); |
+ base::subtle::DeleteHelperInternal<T, void>::DeleteOnMessageLoop( |
+ this, from_here, object); |
} |
// A variant on PostTask that releases the given reference counted object |
@@ -532,6 +534,12 @@ class BASE_EXPORT MessageLoop : public base::MessagePump::Delegate { |
scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; |
private: |
+ template <class T, class R> friend class base::subtle::DeleteHelperInternal; |
+ |
+ void DeleteSoonInternal(const tracked_objects::Location& from_here, |
+ void(*deleter)(const void*), |
+ const void* object); |
+ |
DISALLOW_COPY_AND_ASSIGN(MessageLoop); |
}; |