Index: base/bind_internal.h |
diff --git a/base/bind_internal.h b/base/bind_internal.h |
index 199467c5495197ae0f60827910f3681c8660e349..de14bfff0b4f1e77c88dfb2a53d70ee21137668e 100644 |
--- a/base/bind_internal.h |
+++ b/base/bind_internal.h |
@@ -181,6 +181,11 @@ class RunnableAdapter<R(T::*)(Args...)> { |
return (object->*method_)(std::forward<RunArgs>(args)...); |
} |
+ template <typename RefType, typename... RunArgs> |
+ R Run(const scoped_refptr<RefType>& object, RunArgs&&... args) { |
+ return (object.get()->*method_)(std::forward<RunArgs>(args)...); |
+ } |
+ |
private: |
R (T::*method_)(Args...); |
}; |
@@ -201,6 +206,11 @@ class RunnableAdapter<R(T::*)(Args...) const> { |
return (object->*method_)(std::forward<RunArgs>(args)...); |
} |
+ template <typename RefType, typename... RunArgs> |
+ R Run(const scoped_refptr<RefType>& object, RunArgs&&... args) { |
+ return (object.get()->*method_)(std::forward<RunArgs>(args)...); |
+ } |
+ |
private: |
R (T::*method_)(Args...) const; |
}; |