127 // Do common initializations that must follow instance construction,
128 // for example, those needing virtual calls.
129 // This code could perhaps be moved into initialize() but would
130 // be slightly more awkward because we want the latter to be a
131 // pure virtual.
132 void pre_initialize();
133
134 // Create a new tlab. All TLAB allocations must go through this.
135 virtual HeapWord* allocate_new_tlab(size_t size);
136
137 // Accumulate statistics on all tlabs.
138 virtual void accumulate_statistics_all_tlabs();
139
140 // Reinitialize tlabs before resuming mutators.
141 virtual void resize_all_tlabs();
142
143 // Allocate from the current thread's TLAB, with broken-out slow path.
144 inline static HeapWord* allocate_from_tlab(Klass* klass, Thread* thread, size_t size);
145 static HeapWord* allocate_from_tlab_slow(Klass* klass, Thread* thread, size_t size);
146
147 // Allocate an uninitialized block of the given size, or returns NULL if
148 // this is impossible.
149 inline static HeapWord* common_mem_allocate_noinit(Klass* klass, size_t size, TRAPS);
150
151 // Like allocate_init, but the block returned by a successful allocation
152 // is guaranteed initialized to zeros.
153 inline static HeapWord* common_mem_allocate_init(Klass* klass, size_t size, TRAPS);
154
155 // Helper functions for (VM) allocation.
156 inline static void post_allocation_setup_common(Klass* klass, HeapWord* obj);
157 inline static void post_allocation_setup_no_klass_install(Klass* klass,
158 HeapWord* objPtr);
159
160 inline static void post_allocation_setup_obj(Klass* klass, HeapWord* obj, int size);
161
162 inline static void post_allocation_setup_array(Klass* klass,
163 HeapWord* obj, int length);
164
165 inline static void post_allocation_setup_class(Klass* klass, HeapWord* obj, int size);
166
|
127 // Do common initializations that must follow instance construction,
128 // for example, those needing virtual calls.
129 // This code could perhaps be moved into initialize() but would
130 // be slightly more awkward because we want the latter to be a
131 // pure virtual.
132 void pre_initialize();
133
134 // Create a new tlab. All TLAB allocations must go through this.
135 virtual HeapWord* allocate_new_tlab(size_t size);
136
137 // Accumulate statistics on all tlabs.
138 virtual void accumulate_statistics_all_tlabs();
139
140 // Reinitialize tlabs before resuming mutators.
141 virtual void resize_all_tlabs();
142
143 // Allocate from the current thread's TLAB, with broken-out slow path.
144 inline static HeapWord* allocate_from_tlab(Klass* klass, Thread* thread, size_t size);
145 static HeapWord* allocate_from_tlab_slow(Klass* klass, Thread* thread, size_t size);
146
147 // Handle if needed heap sampling.
148 static HeapWord* handle_heap_sampling(Thread* thread, HeapWord* obj, size_t size);
149
150 // Allocate an uninitialized block of the given size, or returns NULL if
151 // this is impossible.
152 inline static HeapWord* common_mem_allocate_noinit(Klass* klass, size_t size, TRAPS);
153
154 // Like allocate_init, but the block returned by a successful allocation
155 // is guaranteed initialized to zeros.
156 inline static HeapWord* common_mem_allocate_init(Klass* klass, size_t size, TRAPS);
157
158 // Helper functions for (VM) allocation.
159 inline static void post_allocation_setup_common(Klass* klass, HeapWord* obj);
160 inline static void post_allocation_setup_no_klass_install(Klass* klass,
161 HeapWord* objPtr);
162
163 inline static void post_allocation_setup_obj(Klass* klass, HeapWord* obj, int size);
164
165 inline static void post_allocation_setup_array(Klass* klass,
166 HeapWord* obj, int length);
167
168 inline static void post_allocation_setup_class(Klass* klass, HeapWord* obj, int size);
169
|