comparison src/share/vm/gc_interface/collectedHeap.inline.hpp @ 3774:c9ca3f51cf41

6994322: Remove the is_tlab and is_noref / is_large_noref parameters from the CollectedHeap Summary: Remove two unused parameters from the mem_allocate() method and update its uses accordingly. Reviewed-by: stefank, johnc
author tonyp
date Thu, 16 Jun 2011 15:51:57 -0400
parents b1a2afa37ec4
children baf763f388e6
comparison
equal deleted inserted replaced
3773:5130fa1b24f1 3774:c9ca3f51cf41
120 assert(((oop)obj)->blueprint()->oop_is_array(), "must be an array"); 120 assert(((oop)obj)->blueprint()->oop_is_array(), "must be an array");
121 // notify jvmti and dtrace (must be after length is set for dtrace) 121 // notify jvmti and dtrace (must be after length is set for dtrace)
122 post_allocation_notify(klass, (oop)obj); 122 post_allocation_notify(klass, (oop)obj);
123 } 123 }
124 124
125 HeapWord* CollectedHeap::common_mem_allocate_noinit(size_t size, bool is_noref, TRAPS) { 125 HeapWord* CollectedHeap::common_mem_allocate_noinit(size_t size, TRAPS) {
126 126
127 // Clear unhandled oops for memory allocation. Memory allocation might 127 // Clear unhandled oops for memory allocation. Memory allocation might
128 // not take out a lock if from tlab, so clear here. 128 // not take out a lock if from tlab, so clear here.
129 CHECK_UNHANDLED_OOPS_ONLY(THREAD->clear_unhandled_oops();) 129 CHECK_UNHANDLED_OOPS_ONLY(THREAD->clear_unhandled_oops();)
130 130
131 if (HAS_PENDING_EXCEPTION) { 131 if (HAS_PENDING_EXCEPTION) {
132 NOT_PRODUCT(guarantee(false, "Should not allocate with exception pending")); 132 NOT_PRODUCT(guarantee(false, "Should not allocate with exception pending"));
133 return NULL; // caller does a CHECK_0 too 133 return NULL; // caller does a CHECK_0 too
134 } 134 }
135 135
136 // We may want to update this, is_noref objects might not be allocated in TLABs.
137 HeapWord* result = NULL; 136 HeapWord* result = NULL;
138 if (UseTLAB) { 137 if (UseTLAB) {
139 result = CollectedHeap::allocate_from_tlab(THREAD, size); 138 result = CollectedHeap::allocate_from_tlab(THREAD, size);
140 if (result != NULL) { 139 if (result != NULL) {
141 assert(!HAS_PENDING_EXCEPTION, 140 assert(!HAS_PENDING_EXCEPTION,
143 return result; 142 return result;
144 } 143 }
145 } 144 }
146 bool gc_overhead_limit_was_exceeded = false; 145 bool gc_overhead_limit_was_exceeded = false;
147 result = Universe::heap()->mem_allocate(size, 146 result = Universe::heap()->mem_allocate(size,
148 is_noref,
149 false,
150 &gc_overhead_limit_was_exceeded); 147 &gc_overhead_limit_was_exceeded);
151 if (result != NULL) { 148 if (result != NULL) {
152 NOT_PRODUCT(Universe::heap()-> 149 NOT_PRODUCT(Universe::heap()->
153 check_for_non_bad_heap_word_value(result, size)); 150 check_for_non_bad_heap_word_value(result, size));
154 assert(!HAS_PENDING_EXCEPTION, 151 assert(!HAS_PENDING_EXCEPTION,
181 178
182 THROW_OOP_0(Universe::out_of_memory_error_gc_overhead_limit()); 179 THROW_OOP_0(Universe::out_of_memory_error_gc_overhead_limit());
183 } 180 }
184 } 181 }
185 182
186 HeapWord* CollectedHeap::common_mem_allocate_init(size_t size, bool is_noref, TRAPS) { 183 HeapWord* CollectedHeap::common_mem_allocate_init(size_t size, TRAPS) {
187 HeapWord* obj = common_mem_allocate_noinit(size, is_noref, CHECK_NULL); 184 HeapWord* obj = common_mem_allocate_noinit(size, CHECK_NULL);
188 init_obj(obj, size); 185 init_obj(obj, size);
189 return obj; 186 return obj;
190 } 187 }
191 188
192 // Need to investigate, do we really want to throw OOM exception here? 189 // Need to investigate, do we really want to throw OOM exception here?
253 250
254 oop CollectedHeap::obj_allocate(KlassHandle klass, int size, TRAPS) { 251 oop CollectedHeap::obj_allocate(KlassHandle klass, int size, TRAPS) {
255 debug_only(check_for_valid_allocation_state()); 252 debug_only(check_for_valid_allocation_state());
256 assert(!Universe::heap()->is_gc_active(), "Allocation during gc not allowed"); 253 assert(!Universe::heap()->is_gc_active(), "Allocation during gc not allowed");
257 assert(size >= 0, "int won't convert to size_t"); 254 assert(size >= 0, "int won't convert to size_t");
258 HeapWord* obj = common_mem_allocate_init(size, false, CHECK_NULL); 255 HeapWord* obj = common_mem_allocate_init(size, CHECK_NULL);
259 post_allocation_setup_obj(klass, obj, size); 256 post_allocation_setup_obj(klass, obj, size);
260 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value(obj, size)); 257 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value(obj, size));
261 return (oop)obj; 258 return (oop)obj;
262 } 259 }
263 260
266 int length, 263 int length,
267 TRAPS) { 264 TRAPS) {
268 debug_only(check_for_valid_allocation_state()); 265 debug_only(check_for_valid_allocation_state());
269 assert(!Universe::heap()->is_gc_active(), "Allocation during gc not allowed"); 266 assert(!Universe::heap()->is_gc_active(), "Allocation during gc not allowed");
270 assert(size >= 0, "int won't convert to size_t"); 267 assert(size >= 0, "int won't convert to size_t");
271 HeapWord* obj = common_mem_allocate_init(size, false, CHECK_NULL); 268 HeapWord* obj = common_mem_allocate_init(size, CHECK_NULL);
272 post_allocation_setup_array(klass, obj, size, length);
273 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value(obj, size));
274 return (oop)obj;
275 }
276
277 oop CollectedHeap::large_typearray_allocate(KlassHandle klass,
278 int size,
279 int length,
280 TRAPS) {
281 debug_only(check_for_valid_allocation_state());
282 assert(!Universe::heap()->is_gc_active(), "Allocation during gc not allowed");
283 assert(size >= 0, "int won't convert to size_t");
284 HeapWord* obj = common_mem_allocate_init(size, true, CHECK_NULL);
285 post_allocation_setup_array(klass, obj, size, length); 269 post_allocation_setup_array(klass, obj, size, length);
286 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value(obj, size)); 270 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value(obj, size));
287 return (oop)obj; 271 return (oop)obj;
288 } 272 }
289 273