< prev index next >

src/share/vm/runtime/deoptimization.cpp

Print this page




 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


< prev index next >