src/share/vm/ci/ciEnv.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/ci/ciEnv.cpp Thu Nov 14 10:23:59 2013
--- new/src/share/vm/ci/ciEnv.cpp Thu Nov 14 10:23:59 2013
*** 1001,1025 ****
--- 1001,1019 ----
compiler, comp_level);
// Free codeBlobs
code_buffer->free_blob();
! if (nm == NULL) {
// The CodeCache is full. Print out warning and disable compilation.
record_failure("code cache is full");
{
MutexUnlocker ml(Compile_lock);
MutexUnlocker locker(MethodCompileQueue_lock);
CompileBroker::handle_full_code_cache();
}
} else {
! if (nm != NULL) {
nm->set_has_unsafe_access(has_unsafe_access);
nm->set_has_wide_vectors(has_wide_vectors);
// Record successful registration.
// (Put nm into the task handle *before* publishing to the Java heap.)
! if (task() != NULL) task()->set_code(nm);
! if (task() != NULL) {
+ task()->set_code(nm);
+ }
if (entry_bci == InvocationEntryBci) {
if (TieredCompilation) {
// If there is an old version we're done with it
nmethod* old = method->code();
*** 1053,1068 ****
--- 1047,1066 ----
entry_bci);
}
method->method_holder()->add_osr_nmethod(nm);
}
}
}
// JVMTI -- compiled method notification (must be done outside lock)
+ } // safepoints are allowed again
+
if (nm != NULL) {
+ // JVMTI -- compiled method notification (must be done outside lock)
nm->post_compiled_method_load_event();
+ } else {
+ // The CodeCache is full. Print out warning and disable compilation.
+ record_failure("code cache is full");
+ CompileBroker::handle_full_code_cache();
}
}
// ------------------------------------------------------------------
// ciEnv::find_system_klass
src/share/vm/ci/ciEnv.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File