574 entry_bci);
575 }
576 InstanceKlass::cast(method->method_holder())->add_osr_nmethod(nm);
577 }
578 }
579 }
580 result = nm != NULL ? JVMCIEnv::ok :JVMCIEnv::cache_full;
581 }
582 }
583
584 // String creation must be done outside lock
585 if (failure_detail != NULL) {
586 // A failure to allocate the string is silently ignored.
587 Handle message = java_lang_String::create_from_str(failure_detail, THREAD);
588 HotSpotCompiledNmethod::set_installationFailureMessage(compiled_code, message());
589 }
590
591 // JVMTI -- compiled method notification (must be done outside lock)
592 if (nm != NULL) {
593 nm->post_compiled_method_load_event();
594 }
595
596 return result;
597 }
598
|
574 entry_bci);
575 }
576 InstanceKlass::cast(method->method_holder())->add_osr_nmethod(nm);
577 }
578 }
579 }
580 result = nm != NULL ? JVMCIEnv::ok :JVMCIEnv::cache_full;
581 }
582 }
583
584 // String creation must be done outside lock
585 if (failure_detail != NULL) {
586 // A failure to allocate the string is silently ignored.
587 Handle message = java_lang_String::create_from_str(failure_detail, THREAD);
588 HotSpotCompiledNmethod::set_installationFailureMessage(compiled_code, message());
589 }
590
591 // JVMTI -- compiled method notification (must be done outside lock)
592 if (nm != NULL) {
593 nm->post_compiled_method_load_event();
594
595 if (env == NULL) {
596 // This compile didn't come through the CompileBroker so perform the printing here
597 DirectiveSet* directive = DirectivesStack::getMatchingDirective(method, compiler);
598 nm->maybe_print_nmethod(directive);
599 DirectivesStack::release(directive);
600 }
601 }
602
603 return result;
604 }
605
|