| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef FIELDS_REQUIRE_TRACING_H_ |
| #define FIELDS_REQUIRE_TRACING_H_ |
| |
| #include "heap/stubs.h" |
| |
| namespace blink { |
| |
| class HeapObject; |
| class PartObject; |
| |
| class PartBObject { |
| DISALLOW_ALLOCATION(); |
| public: |
| void trace(Visitor*); |
| private: |
| HeapHashSet<PartBObject> m_set; |
| HeapVector<PartBObject> m_vector; |
| }; |
| |
| class PartObject { |
| DISALLOW_ALLOCATION(); |
| public: |
| void trace(Visitor*); |
| private: |
| Member<HeapObject> m_obj1; |
| Member<HeapObject> m_obj2; |
| Member<HeapObject> m_obj3; |
| |
| HeapVector<PartBObject> m_parts; |
| }; |
| |
| class HeapObject : public GarbageCollected<HeapObject> { |
| public: |
| void trace(Visitor*); |
| private: |
| PartObject m_part; |
| Member<HeapObject> m_obj; |
| }; |
| |
| } |
| |
| #endif |