Home | History | Annotate | Download | only in tests
      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 #ifndef FIELDS_REQUIRE_TRACING_H_
      6 #define FIELDS_REQUIRE_TRACING_H_
      7 
      8 #include "heap/stubs.h"
      9 
     10 namespace blink {
     11 
     12 class HeapObject;
     13 class PartObject;
     14 
     15 class PartBObject {
     16     DISALLOW_NEW();
     17 public:
     18     void Trace(Visitor*);
     19 private:
     20     HeapHashSet<PartBObject> m_set;
     21     HeapVector<PartBObject> m_vector;
     22 };
     23 
     24 class PartObject {
     25     DISALLOW_NEW();
     26 public:
     27     void Trace(Visitor*);
     28 private:
     29     Member<HeapObject> m_obj1;
     30     Member<HeapObject> m_obj2;
     31     Member<HeapObject> m_obj3;
     32 
     33     HeapVector<PartBObject> m_parts;
     34 };
     35 
     36 class HeapObject : public GarbageCollected<HeapObject> {
     37 public:
     38     void Trace(Visitor*);
     39 private:
     40     PartObject m_part;
     41     Member<HeapObject> m_obj;
     42 };
     43 
     44 }
     45 
     46 #endif
     47