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

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

Issue 834373003: BlinkGCPlugin: require GC mixin instances to declare local trace(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing 'override' annotations; sync heap/stubs.h with upstream defs Created 5 years, 11 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
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 CLASS_REQUIRES_TRACE_METHOD_H_ 5 #ifndef CLASS_REQUIRES_TRACE_METHOD_H_
6 #define CLASS_REQUIRES_TRACE_METHOD_H_ 6 #define CLASS_REQUIRES_TRACE_METHOD_H_
7 7
8 #include "heap/stubs.h" 8 #include "heap/stubs.h"
9 9
10 namespace blink { 10 namespace blink {
11 11
12 class HeapObject; 12 class HeapObject;
13 13
14 class PartObject { 14 class PartObject {
15 DISALLOW_ALLOCATION(); 15 DISALLOW_ALLOCATION();
16 private: 16 private:
17 Member<HeapObject> m_obj; 17 Member<HeapObject> m_obj;
18 }; 18 };
19 19
20 class HeapObject : public GarbageCollected<HeapObject> { 20 class HeapObject : public GarbageCollected<HeapObject> {
21 private: 21 private:
22 PartObject m_part; 22 PartObject m_part;
23 }; 23 };
24 24
25 class Mixin : public GarbageCollectedMixin {
26 public:
27 virtual void trace(Visitor*) override;
28 Member<Mixin> m_self;
29 };
30
31 class HeapObjectMixin : public GarbageCollected<HeapObjectMixin>, public Mixin {
32 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin);
33 };
34
35 class Mixin2 : public Mixin {
36 public:
37 virtual void trace(Visitor*) override;
38 };
39
40 class HeapObjectMixin2
41 : public GarbageCollected<HeapObjectMixin2>, public Mixin2 {
42 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin2);
43 };
44
45 class Mixin3 : public Mixin {
46 public:
47 virtual void trace(Visitor*) override;
48 };
49
50 class HeapObjectMixin3
51 : public GarbageCollected<HeapObjectMixin3>, public Mixin {
52 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin2);
53 public:
54 virtual void trace(Visitor*) override;
55 };
56
25 } 57 }
26 58
27 #endif 59 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698