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

Side by Side Diff: tools/clang/blink_gc_plugin/Edge.h

Issue 1895943002: Update Blink GC plugin to reflect that Oilpan is now always enabled. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 TOOLS_BLINK_GC_PLUGIN_EDGE_H_ 5 #ifndef TOOLS_BLINK_GC_PLUGIN_EDGE_H_
6 #define TOOLS_BLINK_GC_PLUGIN_EDGE_H_ 6 #define TOOLS_BLINK_GC_PLUGIN_EDGE_H_
7 7
8 #include <cassert> 8 #include <cassert>
9 #include <deque> 9 #include <deque>
10 #include <vector> 10 #include <vector>
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 virtual ~Edge() {} 80 virtual ~Edge() {}
81 virtual LivenessKind Kind() = 0; 81 virtual LivenessKind Kind() = 0;
82 virtual void Accept(EdgeVisitor*) = 0; 82 virtual void Accept(EdgeVisitor*) = 0;
83 virtual bool NeedsFinalization() = 0; 83 virtual bool NeedsFinalization() = 0;
84 virtual TracingStatus NeedsTracing(NeedsTracingOption) { 84 virtual TracingStatus NeedsTracing(NeedsTracingOption) {
85 return TracingStatus::Unknown(); 85 return TracingStatus::Unknown();
86 } 86 }
87 87
88 virtual bool IsValue() { return false; } 88 virtual bool IsValue() { return false; }
89 virtual bool IsRawPtr() { return false; } 89 virtual bool IsRawPtr() { return false; }
90 virtual bool IsRawPtrClass() { return false; }
91 virtual bool IsRefPtr() { return false; } 90 virtual bool IsRefPtr() { return false; }
92 virtual bool IsOwnPtr() { return false; } 91 virtual bool IsOwnPtr() { return false; }
93 virtual bool IsMember() { return false; } 92 virtual bool IsMember() { return false; }
94 virtual bool IsWeakMember() { return false; } 93 virtual bool IsWeakMember() { return false; }
95 virtual bool IsPersistent() { return false; } 94 virtual bool IsPersistent() { return false; }
96 virtual bool IsCollection() { return false; } 95 virtual bool IsCollection() { return false; }
97 }; 96 };
98 97
99 // A value edge is a direct edge to some type, eg, part-object edges. 98 // A value edge is a direct edge to some type, eg, part-object edges.
100 class Value : public Edge { 99 class Value : public Edge {
(...skipping 18 matching lines...) Expand all
119 protected: 118 protected:
120 PtrEdge(Edge* ptr) : ptr_(ptr) { 119 PtrEdge(Edge* ptr) : ptr_(ptr) {
121 assert(ptr && "EdgePtr pointer must be non-null"); 120 assert(ptr && "EdgePtr pointer must be non-null");
122 } 121 }
123 private: 122 private:
124 Edge* ptr_; 123 Edge* ptr_;
125 }; 124 };
126 125
127 class RawPtr : public PtrEdge { 126 class RawPtr : public PtrEdge {
128 public: 127 public:
129 RawPtr(Edge* ptr, bool is_ptr_class, bool is_ref_type) 128 RawPtr(Edge* ptr, bool is_ref_type)
130 : PtrEdge(ptr) 129 : PtrEdge(ptr)
131 , is_ptr_class_(is_ptr_class)
132 , is_ref_type_(is_ref_type) 130 , is_ref_type_(is_ref_type)
133 { 131 {
134 assert(!(is_ptr_class_ && is_ref_type_));
135 } 132 }
136 133
137 bool IsRawPtr() { return true; } 134 bool IsRawPtr() { return true; }
138 bool IsRawPtrClass() { return is_ptr_class_; }
139 LivenessKind Kind() { return kWeak; } 135 LivenessKind Kind() { return kWeak; }
140 bool NeedsFinalization() { return false; } 136 bool NeedsFinalization() { return false; }
141 TracingStatus NeedsTracing(NeedsTracingOption) { 137 TracingStatus NeedsTracing(NeedsTracingOption) {
142 return TracingStatus::Unneeded(); 138 return TracingStatus::Unneeded();
143 } 139 }
144 void Accept(EdgeVisitor* visitor) { visitor->VisitRawPtr(this); } 140 void Accept(EdgeVisitor* visitor) { visitor->VisitRawPtr(this); }
145 141
146 bool HasReferenceType() { return is_ref_type_; } 142 bool HasReferenceType() { return is_ref_type_; }
147 private: 143 private:
148 bool is_ptr_class_;
149 bool is_ref_type_; 144 bool is_ref_type_;
150 }; 145 };
151 146
152 class RefPtr : public PtrEdge { 147 class RefPtr : public PtrEdge {
153 public: 148 public:
154 explicit RefPtr(Edge* ptr) : PtrEdge(ptr) { } 149 explicit RefPtr(Edge* ptr) : PtrEdge(ptr) { }
155 bool IsRefPtr() { return true; } 150 bool IsRefPtr() { return true; }
156 LivenessKind Kind() { return kStrong; } 151 LivenessKind Kind() { return kStrong; }
157 bool NeedsFinalization() { return true; } 152 bool NeedsFinalization() { return true; }
158 TracingStatus NeedsTracing(NeedsTracingOption) { 153 TracingStatus NeedsTracing(NeedsTracingOption) {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 } 243 }
249 244
250 private: 245 private:
251 RecordInfo* info_; 246 RecordInfo* info_;
252 Members members_; 247 Members members_;
253 bool on_heap_; 248 bool on_heap_;
254 bool is_root_; 249 bool is_root_;
255 }; 250 };
256 251
257 #endif // TOOLS_BLINK_GC_PLUGIN_EDGE_H_ 252 #endif // TOOLS_BLINK_GC_PLUGIN_EDGE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698