| Index: base/bind_internal.h
|
| diff --git a/base/bind_internal.h b/base/bind_internal.h
|
| index ac7cd0098787b97ba8d14d35bf068311fade086d..ce6b5d67c6e365e40fb707de03f926d2d1b0129d 100644
|
| --- a/base/bind_internal.h
|
| +++ b/base/bind_internal.h
|
| @@ -104,7 +104,8 @@ template <bool is_method, typename... Args>
|
| struct BindsArrayToFirstArg : false_type {};
|
|
|
| template <typename T, typename... Args>
|
| -struct BindsArrayToFirstArg<true, T, Args...> : is_array<T> {};
|
| +struct BindsArrayToFirstArg<true, T, Args...>
|
| + : is_array<typename std::remove_reference<T>::type> {};
|
|
|
| // HasRefCountedParamAsRawPtr is the same to HasRefCountedTypeAsRawPtr except
|
| // when |is_method| is true HasRefCountedParamAsRawPtr skips the first argument.
|
| @@ -401,11 +402,12 @@ struct BindState<Runnable, R(Args...), BoundArgs...> final
|
| InvokeHelperType, UnboundForwardRunType>;
|
| using UnboundRunType = MakeFunctionType<R, UnboundArgs>;
|
|
|
| - BindState(const Runnable& runnable, const BoundArgs&... bound_args)
|
| + template <typename... ForwardArgs>
|
| + BindState(const Runnable& runnable, ForwardArgs&&... bound_args)
|
| : BindStateBase(&Destroy),
|
| runnable_(runnable),
|
| ref_(bound_args...),
|
| - bound_args_(bound_args...) {}
|
| + bound_args_(std::forward<ForwardArgs>(bound_args)...) {}
|
|
|
| RunnableType runnable_;
|
| MaybeScopedRefPtr<HasIsMethodTag<Runnable>::value, BoundArgs...> ref_;
|
|
|