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

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

Issue 2578103003: Add use-chromium-style-naming option to Blink GC plugin. (Closed)
Patch Set: Rebase Created 3 years, 12 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 STACK_ALLOCATED_H_ 5 #ifndef STACK_ALLOCATED_H_
6 #define STACK_ALLOCATED_H_ 6 #define STACK_ALLOCATED_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_NEW(); 15 DISALLOW_NEW();
16 private: 16 private:
17 Member<HeapObject> m_obj; // Needs tracing. 17 Member<HeapObject> m_obj; // Needs tracing.
18 }; 18 };
19 19
20 class StackObject { 20 class StackObject {
21 STACK_ALLOCATED(); 21 STACK_ALLOCATED();
22 private: 22 private:
23 Member<HeapObject> m_obj; // Does not need tracing. 23 Member<HeapObject> m_obj; // Does not need tracing.
24 }; 24 };
25 25
26 class HeapObject : public GarbageCollected<HeapObject> { 26 class HeapObject : public GarbageCollected<HeapObject> {
27 public: 27 public:
28 void trace(Visitor*); 28 void Trace(Visitor*);
29 private: 29 private:
30 StackObject m_part; // Cannot embed a stack allocated object. 30 StackObject m_part; // Cannot embed a stack allocated object.
31 }; 31 };
32 32
33 // Cannot derive from both heap- and stack-allocated objects. 33 // Cannot derive from both heap- and stack-allocated objects.
34 class DerivedHeapObject : public HeapObject, public StackObject { 34 class DerivedHeapObject : public HeapObject, public StackObject {
35 }; 35 };
36 36
37 // Cannot be stack-allocated and derive from a heap-allocated object. 37 // Cannot be stack-allocated and derive from a heap-allocated object.
38 class DerivedHeapObject2 : public HeapObject { 38 class DerivedHeapObject2 : public HeapObject {
39 STACK_ALLOCATED(); 39 STACK_ALLOCATED();
40 }; 40 };
41 41
42 // STACK_ALLOCATED is inherited. 42 // STACK_ALLOCATED is inherited.
43 class DerivedStackObject : public StackObject { 43 class DerivedStackObject : public StackObject {
44 private: 44 private:
45 StackObject m_anotherPart; // Also fine. 45 StackObject m_anotherPart; // Also fine.
46 }; 46 };
47 47
48 } 48 }
49 49
50 #endif 50 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698