< prev index next >

src/hotspot/share/gc/shared/memAllocator.hpp

Print this page

 72   // that must be parseable as an oop by concurrent collectors.
 73   oop finish(HeapWord* mem) const;
 74 
 75   // Raw memory allocation. This will try to do a TLAB allocation, and otherwise fall
 76   // back to calling CollectedHeap::mem_allocate().
 77   HeapWord* mem_allocate(Allocation& allocation) const;
 78 
 79 public:
 80   // Allocate and fully construct the object, and perform various instrumentation. Could safepoint.
 81   oop allocate() const;
 82 };
 83 
 84 class ObjAllocator: public MemAllocator {
 85 public:
 86   ObjAllocator(Klass* klass, size_t word_size, Thread* thread = Thread::current())
 87     : MemAllocator(klass, word_size, thread) {}
 88 
 89   virtual oop initialize(HeapWord* mem) const;
 90 };
 91 








 92 class ObjArrayAllocator: public MemAllocator {
 93 protected:
 94   const int  _length;
 95   const bool _do_zero;
 96 
 97   void mem_zap_start_padding(HeapWord* mem) const PRODUCT_RETURN;
 98   void mem_zap_end_padding(HeapWord* mem) const PRODUCT_RETURN;
 99 
100 public:
101   ObjArrayAllocator(Klass* klass, size_t word_size, int length, bool do_zero,
102                     Thread* thread = Thread::current())
103     : MemAllocator(klass, word_size, thread),
104       _length(length),
105       _do_zero(do_zero) {}
106 
107   virtual oop initialize(HeapWord* mem) const;
108 };
109 
110 class ClassAllocator: public MemAllocator {
111 public:

 72   // that must be parseable as an oop by concurrent collectors.
 73   oop finish(HeapWord* mem) const;
 74 
 75   // Raw memory allocation. This will try to do a TLAB allocation, and otherwise fall
 76   // back to calling CollectedHeap::mem_allocate().
 77   HeapWord* mem_allocate(Allocation& allocation) const;
 78 
 79 public:
 80   // Allocate and fully construct the object, and perform various instrumentation. Could safepoint.
 81   oop allocate() const;
 82 };
 83 
 84 class ObjAllocator: public MemAllocator {
 85 public:
 86   ObjAllocator(Klass* klass, size_t word_size, Thread* thread = Thread::current())
 87     : MemAllocator(klass, word_size, thread) {}
 88 
 89   virtual oop initialize(HeapWord* mem) const;
 90 };
 91 
 92 class ObjBufferAllocator: public MemAllocator {
 93 public:
 94   ObjBufferAllocator(Klass* klass, size_t word_size, Thread* thread = Thread::current())
 95     : MemAllocator(klass, word_size, thread) {}
 96   virtual oop initialize(HeapWord* mem) const;
 97 };
 98 
 99 
100 class ObjArrayAllocator: public MemAllocator {
101 protected:
102   const int  _length;
103   const bool _do_zero;
104 
105   void mem_zap_start_padding(HeapWord* mem) const PRODUCT_RETURN;
106   void mem_zap_end_padding(HeapWord* mem) const PRODUCT_RETURN;
107 
108 public:
109   ObjArrayAllocator(Klass* klass, size_t word_size, int length, bool do_zero,
110                     Thread* thread = Thread::current())
111     : MemAllocator(klass, word_size, thread),
112       _length(length),
113       _do_zero(do_zero) {}
114 
115   virtual oop initialize(HeapWord* mem) const;
116 };
117 
118 class ClassAllocator: public MemAllocator {
119 public:
< prev index next >