Index: base/bind_unittest.cc |
diff --git a/base/bind_unittest.cc b/base/bind_unittest.cc |
index a30b7756704658a599a84e3df88e80166e731ce7..669e7546bcf775f76dc68238ee479782f8236b4f 100644 |
--- a/base/bind_unittest.cc |
+++ b/base/bind_unittest.cc |
@@ -786,6 +786,28 @@ TEST_F(BindTest, ArgumentCopies) { |
EXPECT_EQ(0, assigns); |
} |
+// Test using lambdas with Bind |
+struct Dummy {}; |
+struct RefcountedClass; |
+void Func1(RefcountedClass*, Dummy*) {} |
+void Func2(Dummy*, RefcountedClass*) {} |
+struct RefcountedClass : public base::RefCounted<RefcountedClass> { |
+ void TryStuffWithThis() { |
+ scoped_refptr<RefcountedClass> refcounted_object; |
+ Dummy d; |
+ base::Closure c; |
+ c = base::Bind(&Func1, |
+ this, |
+ base::Unretained(&d)); |
+ c = base::Bind(&Func2, |
+ base::Unretained(&d), |
+ this); |
+ } |
+ private: |
+ friend class base::RefCounted<RefcountedClass>; |
+ ~RefcountedClass() {} |
+}; |
+ |
// Callback construction and assignment tests. |
// - Construction from an InvokerStorageHolder should not cause ref/deref. |
// - Assignment from other callback should only cause one ref |