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

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

Issue 1385193002: Bisect clang Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: 246985 Created 5 years, 2 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
OLDNEW
(Empty)
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_PTRS_H_
6 #define CYCLE_PTRS_H_
7
8 #include "heap/stubs.h"
9
10 namespace blink {
11
12 class B;
13 class C;
14 class D;
15 class E;
16
17 // This contains a leaking cycle:
18 // E -per-> A -mem-> B -ref-> C -own-> D -own-vec-> E
19
20 // The traced cycle from A -> B -> A does not leak.
21
22 class A : public GarbageCollected<A> {
23 public:
24 virtual void trace(Visitor*);
25 private:
26 Member<B> m_b;
27 };
28
29 class B : public GarbageCollectedFinalized<B> {
30 public:
31 virtual void trace(Visitor*);
32 private:
33 Member<A> m_a;
34 RefPtr<C> m_c;
35 };
36
37 class C : public RefCounted<C> {
38 private:
39 OwnPtr<D> m_d;
40 };
41
42 class D {
43 private:
44 Vector<OwnPtr<E> > m_es;
45 };
46
47 class E {
48 private:
49 Persistent<A> m_a;
50 };
51
52 }
53
54 #endif
OLDNEW
« no previous file with comments | « tools/clang/blink_gc_plugin/tests/crash_on_invalid.txt ('k') | tools/clang/blink_gc_plugin/tests/cycle_ptrs.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698