• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CYCLE_SUB_H_
6 #define CYCLE_SUB_H_
7 
8 #include "heap/stubs.h"
9 
10 namespace blink {
11 
12 class C;
13 
14 // This contains a leaking cycle:
15 // C -per-> A -sub-> B -ref-> C
16 
17 class A : public GarbageCollectedFinalized<A> {
18 public:
Trace(Visitor *)19     virtual void Trace(Visitor*) {}
20 };
21 
22 class B : public A {
23 public:
24     virtual void Trace(Visitor*);
25 private:
26     RefPtr<C> m_c;
27 };
28 
29 class C : public RefCounted<C> {
30 private:
31     Persistent<A> m_a;
32 };
33 
34 }
35 
36 #endif
37