equal
deleted
inserted
replaced
1065 // want dependents on the call site class only not all classes in |
1065 // want dependents on the call site class only not all classes in |
1066 // the ContextStream. |
1066 // the ContextStream. |
1067 int marked = 0; |
1067 int marked = 0; |
1068 { |
1068 { |
1069 MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); |
1069 MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); |
1070 InstanceKlass* call_site_klass = InstanceKlass::cast(call_site->klass()); |
1070 InstanceKlass* ctxk = MethodHandles::get_call_site_context(call_site()); |
1071 marked = call_site_klass->mark_dependent_nmethods(changes); |
1071 if (ctxk == NULL) { |
|
1072 return; // No dependencies to invalidate yet. |
|
1073 } |
|
1074 marked = ctxk->mark_dependent_nmethods(changes); |
1072 } |
1075 } |
1073 if (marked > 0) { |
1076 if (marked > 0) { |
1074 // At least one nmethod has been marked for deoptimization |
1077 // At least one nmethod has been marked for deoptimization |
1075 VM_Deoptimize op; |
1078 VM_Deoptimize op; |
1076 VMThread::execute(&op); |
1079 VMThread::execute(&op); |