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::AtUniquePtr(UniquePtr*) {}
     20 void RecursiveEdgeVisitor::AtMember(Member*) {}
     21 void RecursiveEdgeVisitor::AtWeakMember(WeakMember*) {}
     22 void RecursiveEdgeVisitor::AtPersistent(Persistent*) {}
     23 void RecursiveEdgeVisitor::AtCrossThreadPersistent(CrossThreadPersistent*) {}
     24 void RecursiveEdgeVisitor::AtCollection(Collection*) {}
     25 void RecursiveEdgeVisitor::AtIterator(Iterator*) {}
     26 
     27 void RecursiveEdgeVisitor::VisitValue(Value* e) {
     28   AtValue(e);
     29 }
     30 
     31 void RecursiveEdgeVisitor::VisitRawPtr(RawPtr* e) {
     32   AtRawPtr(e);
     33   Enter(e);
     34   e->ptr()->Accept(this);
     35   Leave();
     36 }
     37 
     38 void RecursiveEdgeVisitor::VisitRefPtr(RefPtr* e) {
     39   AtRefPtr(e);
     40   Enter(e);
     41   e->ptr()->Accept(this);
     42   Leave();
     43 }
     44 
     45 void RecursiveEdgeVisitor::VisitUniquePtr(UniquePtr* e) {
     46   AtUniquePtr(e);
     47   Enter(e);
     48   e->ptr()->Accept(this);
     49   Leave();
     50 }
     51 
     52 void RecursiveEdgeVisitor::VisitMember(Member* e) {
     53   AtMember(e);
     54   Enter(e);
     55   e->ptr()->Accept(this);
     56   Leave();
     57 }
     58 
     59 void RecursiveEdgeVisitor::VisitWeakMember(WeakMember* e) {
     60   AtWeakMember(e);
     61   Enter(e);
     62   e->ptr()->Accept(this);
     63   Leave();
     64 }
     65 
     66 void RecursiveEdgeVisitor::VisitPersistent(Persistent* e) {
     67   AtPersistent(e);
     68   Enter(e);
     69   e->ptr()->Accept(this);
     70   Leave();
     71 }
     72 
     73 void RecursiveEdgeVisitor::VisitCrossThreadPersistent(
     74     CrossThreadPersistent* e) {
     75   AtCrossThreadPersistent(e);
     76   Enter(e);
     77   e->ptr()->Accept(this);
     78   Leave();
     79 }
     80 
     81 void RecursiveEdgeVisitor::VisitCollection(Collection* e) {
     82   AtCollection(e);
     83   Enter(e);
     84   e->AcceptMembers(this);
     85   Leave();
     86 }
     87 
     88 void RecursiveEdgeVisitor::VisitIterator(Iterator* e) {
     89   AtIterator(e);
     90 }
     91