diff options
Diffstat (limited to 'base/bind_helpers.h')
-rw-r--r-- | base/bind_helpers.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/base/bind_helpers.h b/base/bind_helpers.h index 73fd81e..e4b4a17 100644 --- a/base/bind_helpers.h +++ b/base/bind_helpers.h @@ -52,6 +52,7 @@ #pragma once #include "base/basictypes.h" +#include "base/memory/weak_ptr.h" #include "base/template_util.h" namespace base { @@ -215,7 +216,7 @@ const T& Unwrap(ConstRefWrapper<T> const_ref) { // Utility for handling different refcounting semantics in the Bind() // function. -template <typename ref, typename T> +template <typename IsMethod, typename T> struct MaybeRefcount; template <typename T> @@ -248,6 +249,12 @@ struct MaybeRefcount<base::true_type, const T*> { static void Release(const T* o) { o->Release(); } }; +template <typename T> +struct MaybeRefcount<base::true_type, WeakPtr<T> > { + static void AddRef(const WeakPtr<T>&) {} + static void Release(const WeakPtr<T>&) {} +}; + } // namespace internal template <typename T> |