Home | History | Annotate | Download | only in blink_gc_plugin
      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 #include "Config.h"
      6 #include "Edge.h"
      7 #include "RecordInfo.h"
      8 
      9 TracingStatus Value::NeedsTracing(NeedsTracingOption option) {
     10   return value_->NeedsTracing(option);
     11 }
     12 
     13 bool Value::NeedsFinalization() { return value_->NeedsFinalization(); }
     14 bool Collection::NeedsFinalization() { return info_->NeedsFinalization(); }
     15 
     16 void RecursiveEdgeVisitor::AtValue(Value*) {}
     17 void RecursiveEdgeVisitor::AtRawPtr(RawPtr*) {}
     18 void RecursiveEdgeVisitor::AtRefPtr(RefPtr*) {}
     19 void RecursiveEdgeVisitor::AtOwnPtr(OwnPtr*) {}
     20 void RecursiveEdgeVisitor::AtMember(Member*) {}
     21 void RecursiveEdgeVisitor::AtWeakMember(WeakMember*) {}
     22 void RecursiveEdgeVisitor::AtPersistent(Persistent*) {}
     23 void RecursiveEdgeVisitor::AtCollection(Collection*) {}
     24 
     25 void RecursiveEdgeVisitor::VisitValue(Value* e) {
     26   AtValue(e);
     27 }
     28 
     29 void RecursiveEdgeVisitor::VisitRawPtr(RawPtr* e) {
     30   AtRawPtr(e);
     31   Enter(e);
     32   e->ptr()->Accept(this);
     33   Leave();
     34 }
     35 
     36 void RecursiveEdgeVisitor::VisitRefPtr(RefPtr* e) {
     37   AtRefPtr(e);
     38   Enter(e);
     39   e->ptr()->Accept(this);
     40   Leave();
     41 }
     42 void RecursiveEdgeVisitor::VisitOwnPtr(OwnPtr* e) {
     43   AtOwnPtr(e);
     44   Enter(e);
     45   e->ptr()->Accept(this);
     46   Leave();
     47 }
     48 
     49 void RecursiveEdgeVisitor::VisitMember(Member* e) {
     50   AtMember(e);
     51   Enter(e);
     52   e->ptr()->Accept(this);
     53   Leave();
     54 }
     55 
     56 void RecursiveEdgeVisitor::VisitWeakMember(WeakMember* e) {
     57   AtWeakMember(e);
     58   Enter(e);
     59   e->ptr()->Accept(this);
     60   Leave();
     61 }
     62 
     63 void RecursiveEdgeVisitor::VisitPersistent(Persistent* e) {
     64   AtPersistent(e);
     65   Enter(e);
     66   e->ptr()->Accept(this);
     67   Leave();
     68 }
     69 
     70 void RecursiveEdgeVisitor::VisitCollection(Collection* e) {
     71   AtCollection(e);
     72   Enter(e);
     73   e->AcceptMembers(this);
     74   Leave();
     75 }
     76