| Index: tools/clang/blink_gc_plugin/Edge.h
|
| diff --git a/tools/clang/blink_gc_plugin/Edge.h b/tools/clang/blink_gc_plugin/Edge.h
|
| index 2ea8e544e8e6905ada5f967321683fde0ed8a89a..29e5f25b1d1253f884bfce0bce5f92f3635d5ff5 100644
|
| --- a/tools/clang/blink_gc_plugin/Edge.h
|
| +++ b/tools/clang/blink_gc_plugin/Edge.h
|
| @@ -124,8 +124,14 @@ class PtrEdge : public Edge {
|
|
|
| class RawPtr : public PtrEdge {
|
| public:
|
| - explicit RawPtr(Edge* ptr, bool is_ptr_class)
|
| - : PtrEdge(ptr), is_ptr_class_(is_ptr_class) { }
|
| + RawPtr(Edge* ptr, bool is_ptr_class, bool is_ref_type)
|
| + : PtrEdge(ptr)
|
| + , is_ptr_class_(is_ptr_class)
|
| + , is_ref_type_(is_ref_type)
|
| + {
|
| + assert(!(is_ptr_class_ && is_ref_type_));
|
| + }
|
| +
|
| bool IsRawPtr() { return true; }
|
| bool IsRawPtrClass() { return is_ptr_class_; }
|
| LivenessKind Kind() { return kWeak; }
|
| @@ -134,8 +140,11 @@ class RawPtr : public PtrEdge {
|
| return TracingStatus::Unneeded();
|
| }
|
| void Accept(EdgeVisitor* visitor) { visitor->VisitRawPtr(this); }
|
| +
|
| + bool HasReferenceType() { return is_ref_type_; }
|
| private:
|
| bool is_ptr_class_;
|
| + bool is_ref_type_;
|
| };
|
|
|
| class RefPtr : public PtrEdge {
|
|
|