Index: base/callback_unittest.cc |
diff --git a/base/callback_unittest.cc b/base/callback_unittest.cc |
index 176ea0650ab6c9eb5664ed6ad23d3b821ad12634..ce453a10758e72f9a8799ba2db2b350588c508a6 100644 |
--- a/base/callback_unittest.cc |
+++ b/base/callback_unittest.cc |
@@ -14,63 +14,38 @@ |
namespace base { |
-namespace { |
- |
-struct FakeInvoker { |
- // MSVC 2013 doesn't support Type Alias of function types. |
- // Revisit this after we update it to newer version. |
- typedef void RunType(internal::BindStateBase*); |
- static void Run(internal::BindStateBase*) { |
- } |
-}; |
- |
-} // namespace |
- |
-namespace internal { |
+void NopInvokeFunc(internal::BindStateBase*) {} |
// White-box testpoints to inject into a Callback<> object for checking |
// comparators and emptiness APIs. Use a BindState that is specialized |
// based on a type we declared in the anonymous namespace above to remove any |
// chance of colliding with another instantiation and breaking the |
// one-definition-rule. |
-template <> |
-struct BindState<void(), void(), FakeInvoker> |
- : public BindStateBase { |
- public: |
- BindState() : BindStateBase(&Destroy) {} |
- using InvokerType = FakeInvoker; |
+struct FakeBindState1 : internal::BindStateBase { |
+ FakeBindState1() : BindStateBase(&Destroy) {} |
private: |
- ~BindState() {} |
- static void Destroy(BindStateBase* self) { |
- delete static_cast<BindState*>(self); |
+ ~FakeBindState1() {} |
+ static void Destroy(internal::BindStateBase* self) { |
+ delete static_cast<FakeBindState1*>(self); |
} |
}; |
-template <> |
-struct BindState<void(), void(), FakeInvoker, FakeInvoker> |
- : public BindStateBase { |
- public: |
- BindState() : BindStateBase(&Destroy) {} |
- using InvokerType = FakeInvoker; |
+struct FakeBindState2 : internal::BindStateBase { |
+ FakeBindState2() : BindStateBase(&Destroy) {} |
private: |
- ~BindState() {} |
- static void Destroy(BindStateBase* self) { |
- delete static_cast<BindState*>(self); |
+ ~FakeBindState2() {} |
+ static void Destroy(internal::BindStateBase* self) { |
+ delete static_cast<FakeBindState2*>(self); |
} |
}; |
-} // namespace internal |
namespace { |
-using FakeBindState1 = internal::BindState<void(), void(), FakeInvoker>; |
-using FakeBindState2 = |
- internal::BindState<void(), void(), FakeInvoker, FakeInvoker>; |
- |
class CallbackTest : public ::testing::Test { |
public: |
CallbackTest() |
- : callback_a_(new FakeBindState1()), |
- callback_b_(new FakeBindState2()) { |
+ : callback_a_(new FakeBindState1(), &NopInvokeFunc), |
+ callback_b_(new FakeBindState2(), &NopInvokeFunc) { |
} |
~CallbackTest() override {} |
@@ -113,7 +88,7 @@ TEST_F(CallbackTest, Equals) { |
EXPECT_FALSE(callback_b_.Equals(callback_a_)); |
// We should compare based on instance, not type. |
- Callback<void()> callback_c(new FakeBindState1()); |
+ Callback<void()> callback_c(new FakeBindState1(), &NopInvokeFunc); |
Callback<void()> callback_a2 = callback_a_; |
EXPECT_TRUE(callback_a_.Equals(callback_a2)); |
EXPECT_FALSE(callback_a_.Equals(callback_c)); |