diff options
author | rsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-05 06:08:01 +0000 |
---|---|---|
committer | rsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-05 06:08:01 +0000 |
commit | ca61722ee9d47c5e103f339fe2ac87d96b8ab29a (patch) | |
tree | 9420b6355924ec2263627b8d4389c4a863d93fa5 /base/bind.h | |
parent | 4d45f7c5850078379df1512f991185a6d40ae12f (diff) | |
download | chromium_src-ca61722ee9d47c5e103f339fe2ac87d96b8ab29a.zip chromium_src-ca61722ee9d47c5e103f339fe2ac87d96b8ab29a.tar.gz chromium_src-ca61722ee9d47c5e103f339fe2ac87d96b8ab29a.tar.bz2 |
Revert 154885 - Extend base::Callback to 8 arguments.
This is required by the Android port in order to support using base::Bind with
the FaviconService::GetRawFaviconForURL method. This is used in code yet in process of being upstreamed (bug 138755).
BUG=146003
Review URL: https://chromiumcodereview.appspot.com/10919055
TBR=leandrogracia@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10915080
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154901 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/bind.h')
-rw-r--r-- | base/bind.h | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/base/bind.h b/base/bind.h index 3682150..5cf124d 100644 --- a/base/bind.h +++ b/base/bind.h @@ -512,90 +512,6 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, p7)); } -template <typename Functor, typename P1, typename P2, typename P3, typename P4, - typename P5, typename P6, typename P7, typename P8> -base::Callback< - typename internal::BindState< - typename internal::FunctorTraits<Functor>::RunnableType, - typename internal::FunctorTraits<Functor>::RunType, - void(typename internal::CallbackParamTraits<P1>::StorageType, - typename internal::CallbackParamTraits<P2>::StorageType, - typename internal::CallbackParamTraits<P3>::StorageType, - typename internal::CallbackParamTraits<P4>::StorageType, - typename internal::CallbackParamTraits<P5>::StorageType, - typename internal::CallbackParamTraits<P6>::StorageType, - typename internal::CallbackParamTraits<P7>::StorageType, - typename internal::CallbackParamTraits<P8>::StorageType)> - ::UnboundRunType> -Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4, - const P5& p5, const P6& p6, const P7& p7, const P8& p8) { - // Typedefs for how to store and run the functor. - typedef typename internal::FunctorTraits<Functor>::RunnableType RunnableType; - typedef typename internal::FunctorTraits<Functor>::RunType RunType; - - // Use RunnableType::RunType instead of RunType above because our - // checks should below for bound references need to know what the actual - // functor is going to interpret the argument as. - typedef internal::FunctionTraits<typename RunnableType::RunType> - BoundFunctorTraits; - - // Do not allow binding a non-const reference parameter. Non-const reference - // parameters are disallowed by the Google style guide. Also, binding a - // non-const reference parameter can make for subtle bugs because the - // invoked function will receive a reference to the stored copy of the - // argument and not the original. - COMPILE_ASSERT( - !(is_non_const_reference<typename BoundFunctorTraits::A1Type>::value || - is_non_const_reference<typename BoundFunctorTraits::A2Type>::value || - is_non_const_reference<typename BoundFunctorTraits::A3Type>::value || - is_non_const_reference<typename BoundFunctorTraits::A4Type>::value || - is_non_const_reference<typename BoundFunctorTraits::A5Type>::value || - is_non_const_reference<typename BoundFunctorTraits::A6Type>::value || - is_non_const_reference<typename BoundFunctorTraits::A7Type>::value || - is_non_const_reference<typename BoundFunctorTraits::A8Type>::value ), - do_not_bind_functions_with_nonconst_ref); - - // For methods, we need to be careful for parameter 1. We do not require - // a scoped_refptr because BindState<> itself takes care of AddRef() for - // methods. We also disallow binding of an array as the method's target - // object. - COMPILE_ASSERT( - internal::HasIsMethodTag<RunnableType>::value || - !internal::NeedsScopedRefptrButGetsRawPtr<P1>::value, - p1_is_refcounted_type_and_needs_scoped_refptr); - COMPILE_ASSERT(!internal::HasIsMethodTag<RunnableType>::value || - !is_array<P1>::value, - first_bound_argument_to_method_cannot_be_array); - COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P2>::value, - p2_is_refcounted_type_and_needs_scoped_refptr); - COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P3>::value, - p3_is_refcounted_type_and_needs_scoped_refptr); - COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P4>::value, - p4_is_refcounted_type_and_needs_scoped_refptr); - COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P5>::value, - p5_is_refcounted_type_and_needs_scoped_refptr); - COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P6>::value, - p6_is_refcounted_type_and_needs_scoped_refptr); - COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P7>::value, - p7_is_refcounted_type_and_needs_scoped_refptr); - COMPILE_ASSERT(!internal::NeedsScopedRefptrButGetsRawPtr<P8>::value, - p8_is_refcounted_type_and_needs_scoped_refptr); - typedef internal::BindState<RunnableType, RunType, - void(typename internal::CallbackParamTraits<P1>::StorageType, - typename internal::CallbackParamTraits<P2>::StorageType, - typename internal::CallbackParamTraits<P3>::StorageType, - typename internal::CallbackParamTraits<P4>::StorageType, - typename internal::CallbackParamTraits<P5>::StorageType, - typename internal::CallbackParamTraits<P6>::StorageType, - typename internal::CallbackParamTraits<P7>::StorageType, - typename internal::CallbackParamTraits<P8>::StorageType)> BindState; - - - return Callback<typename BindState::UnboundRunType>( - new BindState(internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6, - p7, p8)); -} - } // namespace base #endif // BASE_BIND_H_ |