equal
deleted
inserted
replaced
820 VMThread::execute(&op); |
820 VMThread::execute(&op); |
821 return op.result(); |
821 return op.result(); |
822 WB_END |
822 WB_END |
823 |
823 |
824 WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o)) |
824 WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o)) |
825 MutexLocker mu(Compile_lock); |
|
826 CodeCache::mark_all_nmethods_for_deoptimization(); |
825 CodeCache::mark_all_nmethods_for_deoptimization(); |
827 VM_Deoptimize op; |
826 Deoptimization::deoptimize_all_marked(); |
828 VMThread::execute(&op); |
|
829 WB_END |
827 WB_END |
830 |
828 |
831 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |
829 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |
832 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
830 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
833 int result = 0; |
831 int result = 0; |
840 mh->code()->mark_for_deoptimization(); |
838 mh->code()->mark_for_deoptimization(); |
841 ++result; |
839 ++result; |
842 } |
840 } |
843 result += CodeCache::mark_for_deoptimization(mh()); |
841 result += CodeCache::mark_for_deoptimization(mh()); |
844 if (result > 0) { |
842 if (result > 0) { |
845 VM_Deoptimize op; |
843 Deoptimization::deoptimize_all_marked(); |
846 VMThread::execute(&op); |
|
847 } |
844 } |
848 return result; |
845 return result; |
849 WB_END |
846 WB_END |
850 |
847 |
851 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |
848 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |