Index: base/bind_internal.h |
diff --git a/base/bind_internal.h b/base/bind_internal.h |
index 199467c5495197ae0f60827910f3681c8660e349..ffbf9262fcdf313b9a8be3458b088290fbcee1e4 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 Run(object.get(), 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 Run(object.get(), std::forward<RunArgs>(args)...); |
+ } |
+ |
private: |
R (T::*method_)(Args...) const; |
}; |