402 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
402 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
403 int result = 0; |
403 int result = 0; |
404 CHECK_JNI_EXCEPTION_(env, result); |
404 CHECK_JNI_EXCEPTION_(env, result); |
405 MutexLockerEx mu(Compile_lock); |
405 MutexLockerEx mu(Compile_lock); |
406 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid)); |
406 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid)); |
407 nmethod* code; |
|
408 if (is_osr) { |
407 if (is_osr) { |
409 int bci = InvocationEntryBci; |
408 result += mh->mark_osr_nmethods(); |
410 while ((code = mh->lookup_osr_nmethod_for(bci, CompLevel_none, false)) != NULL) { |
409 } else if (mh->code() != NULL) { |
411 code->mark_for_deoptimization(); |
410 mh->code()->mark_for_deoptimization(); |
412 ++result; |
|
413 bci = code->osr_entry_bci() + 1; |
|
414 } |
|
415 } else { |
|
416 code = mh->code(); |
|
417 } |
|
418 if (code != NULL) { |
|
419 code->mark_for_deoptimization(); |
|
420 ++result; |
411 ++result; |
421 } |
412 } |
422 result += CodeCache::mark_for_deoptimization(mh()); |
413 result += CodeCache::mark_for_deoptimization(mh()); |
423 if (result > 0) { |
414 if (result > 0) { |
424 VM_Deoptimize op; |
415 VM_Deoptimize op; |