summaryrefslogtreecommitdiffstats
path: root/base/bind_helpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'base/bind_helpers.h')
-rw-r--r--base/bind_helpers.h9
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>