comparison src/share/vm/runtime/deoptimization.cpp @ 20706:793204f5528a

8067144: SIGSEGV with +TraceDeoptimization in Deoptimization::print_objects Summary: -XX:+TraceDeoptimization tries to print realloc'ed objects even when there are none Reviewed-by: kvn
author roland
date Wed, 10 Dec 2014 16:45:55 +0100
parents d3f3f7677537
children 7848fc12602b ddce0b7cee93
comparison
equal deleted inserted replaced
20705:d3f3f7677537 20706:793204f5528a
248 if (objects != NULL) { 248 if (objects != NULL) {
249 JRT_BLOCK 249 JRT_BLOCK
250 realloc_failures = realloc_objects(thread, &deoptee, objects, THREAD); 250 realloc_failures = realloc_objects(thread, &deoptee, objects, THREAD);
251 JRT_END 251 JRT_END
252 reassign_fields(&deoptee, &map, objects, realloc_failures); 252 reassign_fields(&deoptee, &map, objects, realloc_failures);
253 }
254 #ifndef PRODUCT 253 #ifndef PRODUCT
255 if (TraceDeoptimization) { 254 if (TraceDeoptimization) {
256 ttyLocker ttyl; 255 ttyLocker ttyl;
257 tty->print_cr("REALLOC OBJECTS in thread " INTPTR_FORMAT, thread); 256 tty->print_cr("REALLOC OBJECTS in thread " INTPTR_FORMAT, thread);
258 print_objects(objects, realloc_failures); 257 print_objects(objects, realloc_failures);
259 } 258 }
260 #endif 259 #endif
260 }
261 if (save_oop_result) { 261 if (save_oop_result) {
262 // Restore result. 262 // Restore result.
263 deoptee.set_saved_oop_result(&map, return_value()); 263 deoptee.set_saved_oop_result(&map, return_value());
264 } 264 }
265 } 265 }