279 Klass* k = java_lang_Class::as_Klass(mi->owner_klass());
280 tty->print_cr(" failed reallocation for klass %s", k->external_name());
281 } else {
282 tty->print_cr(" object <" INTPTR_FORMAT "> locked", p2i(mi->owner()));
283 }
284 }
285 }
286 }
287 #endif // !PRODUCT
288 }
289 }
290 #ifndef INCLUDE_JVMCI
291 }
292 }
293 #endif // INCLUDE_JVMCI
294 #endif // COMPILER2 || INCLUDE_JVMCI
295
296 // Ensure that no safepoint is taken after pointers have been stored
297 // in fields of rematerialized objects. If a safepoint occurs from here on
298 // out the java state residing in the vframeArray will be missed.
299 No_Safepoint_Verifier no_safepoint;
300
301 vframeArray* array = create_vframeArray(thread, deoptee, &map, chunk, realloc_failures);
302 #if defined(COMPILER2) || INCLUDE_JVMCI
303 if (realloc_failures) {
304 pop_frames_failed_reallocs(thread, array);
305 }
306 #endif
307
308 assert(thread->vframe_array_head() == NULL, "Pending deopt!");
309 thread->set_vframe_array_head(array);
310
311 // Now that the vframeArray has been created if we have any deferred local writes
312 // added by jvmti then we can free up that structure as the data is now in the
313 // vframeArray
314
315 if (thread->deferred_locals() != NULL) {
316 GrowableArray<jvmtiDeferredLocalVariableSet*>* list = thread->deferred_locals();
317 int i = 0;
318 do {
319 // Because of inlining we could have multiple vframes for a single frame
|
279 Klass* k = java_lang_Class::as_Klass(mi->owner_klass());
280 tty->print_cr(" failed reallocation for klass %s", k->external_name());
281 } else {
282 tty->print_cr(" object <" INTPTR_FORMAT "> locked", p2i(mi->owner()));
283 }
284 }
285 }
286 }
287 #endif // !PRODUCT
288 }
289 }
290 #ifndef INCLUDE_JVMCI
291 }
292 }
293 #endif // INCLUDE_JVMCI
294 #endif // COMPILER2 || INCLUDE_JVMCI
295
296 // Ensure that no safepoint is taken after pointers have been stored
297 // in fields of rematerialized objects. If a safepoint occurs from here on
298 // out the java state residing in the vframeArray will be missed.
299 NoSafepointVerifier no_safepoint;
300
301 vframeArray* array = create_vframeArray(thread, deoptee, &map, chunk, realloc_failures);
302 #if defined(COMPILER2) || INCLUDE_JVMCI
303 if (realloc_failures) {
304 pop_frames_failed_reallocs(thread, array);
305 }
306 #endif
307
308 assert(thread->vframe_array_head() == NULL, "Pending deopt!");
309 thread->set_vframe_array_head(array);
310
311 // Now that the vframeArray has been created if we have any deferred local writes
312 // added by jvmti then we can free up that structure as the data is now in the
313 // vframeArray
314
315 if (thread->deferred_locals() != NULL) {
316 GrowableArray<jvmtiDeferredLocalVariableSet*>* list = thread->deferred_locals();
317 int i = 0;
318 do {
319 // Because of inlining we could have multiple vframes for a single frame
|