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 MEMBER_IN_OFFHEAP_CLASS_H_ 6#define MEMBER_IN_OFFHEAP_CLASS_H_ 7 8#include "heap/stubs.h" 9 10namespace blink { 11 12class HeapObject : public GarbageCollected<HeapObject> { }; 13 14class OffHeapObject { 15public: 16 void trace(Visitor*); 17private: 18 Member<HeapObject> m_obj; // Must not contain Member. 19 Persistent<HeapVector<Member<HeapObject> > > m_objs; // OK 20}; 21 22class StackObject { 23 STACK_ALLOCATED(); 24private: 25 Member<HeapObject> m_obj; // OK 26}; 27 28class PartObject { 29 DISALLOW_ALLOCATION(); 30public: 31 void trace(Visitor*); 32private: 33 Member<HeapObject> m_obj; // OK 34}; 35 36class InlineObject { 37 ALLOW_ONLY_INLINE_ALLOCATION(); 38public: 39 void trace(Visitor*); 40private: 41 Member<HeapObject> m_obj; // OK 42}; 43 44} 45 46#endif 47