Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: tools/clang/blink_gc_plugin/tests/cycle_super.h

Issue 207913002: Global cycle detection analysis. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef BASE_REQUIRES_TRACING_H_ 5 #ifndef CYCLE_SUPER_H_
6 #define BASE_REQUIRES_TRACING_H_ 6 #define CYCLE_SUPER_H_
7 7
8 #include "heap/stubs.h" 8 #include "heap/stubs.h"
9 9
10 namespace WebCore { 10 namespace WebCore {
11 11
12 class A : public GarbageCollected<A> { 12 class D;
13
14 // This contains a leaking cycle:
15 // D -per-> C -sup-> B -sup-> A -ref-> D
16
17 class A : public GarbageCollectedFinalized<A> {
18 public:
19 virtual void trace(Visitor*);
20 private:
21 RefPtr<D> m_d;
22 };
23
24 class B : public A {
13 public: 25 public:
14 virtual void trace(Visitor*); 26 virtual void trace(Visitor*);
15 }; 27 };
16 28
17 class B : public A { 29 class C : public B {
18 // Does not need trace 30 public:
31 virtual void trace(Visitor*);
19 }; 32 };
20 33
21 class C : public B { 34 class D : public RefCounted<C> {
22 public:
23 void trace(Visitor*);
24 private: 35 private:
25 Member<A> m_a; 36 Persistent<C> m_c;
26 };
27
28 class D : public C {
29 public:
30 void trace(Visitor*);
31 private:
32 Member<A> m_a;
33 }; 37 };
34 38
35 } 39 }
36 40
37 #endif 41 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698