Chromium Code Reviews| Index: base/memory/scoped_ptr_unittest.cc |
| diff --git a/base/memory/scoped_ptr_unittest.cc b/base/memory/scoped_ptr_unittest.cc |
| index 766f4444001e828cd077ca39b85c7dd326779c65..2e27fcab306b1a83f47597690e5201c9dfbc85f3 100644 |
| --- a/base/memory/scoped_ptr_unittest.cc |
| +++ b/base/memory/scoped_ptr_unittest.cc |
| @@ -693,3 +693,22 @@ TEST(ScopedPtrTest, LoggingDoesntConvertToBoolean) { |
| EXPECT_EQ(s2.str(), s1.str()); |
| } |
| + |
| +TEST(ScopedPtrTest, ReferenceCycle) { |
| + struct StructB; |
| + struct StructA { |
| + scoped_ptr<StructB> b; |
| + }; |
| + |
| + struct StructB { |
| + scoped_ptr<StructA> a; |
| + }; |
| + |
| + // Create a reference cycle. |
| + StructA* a = new StructA; |
| + a->b.reset(new StructB); |
| + a->b->a.reset(a); |
| + |
| + // Break the cycle by calling |reset()|. |
|
Peter Kasting
2015/09/23 03:09:44
Nit: No || around function names
I might add to t
Anand Mistry (off Chromium)
2015/09/23 04:04:21
Done and done.
|
| + a->b.reset(); |
| +} |