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