blob: 60caa68042b4110a5d9e8d20cff0aa97a7813531 [file] [log] [blame]
// 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