hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp
changeset 19278 c4355bebb414
parent 18940 d39d4765e6cb
child 19326 14cb6cf26a96
equal deleted inserted replaced
19277:8952a5e25673 19278:c4355bebb414
  3215 
  3215 
  3216   // Remove all breakpoints in methods of this class
  3216   // Remove all breakpoints in methods of this class
  3217   JvmtiBreakpoints& jvmti_breakpoints = JvmtiCurrentBreakpoints::get_jvmti_breakpoints();
  3217   JvmtiBreakpoints& jvmti_breakpoints = JvmtiCurrentBreakpoints::get_jvmti_breakpoints();
  3218   jvmti_breakpoints.clearall_in_class_at_safepoint(the_class_oop);
  3218   jvmti_breakpoints.clearall_in_class_at_safepoint(the_class_oop);
  3219 
  3219 
  3220   if (the_class_oop == Universe::reflect_invoke_cache()->klass()) {
       
  3221     // We are redefining java.lang.reflect.Method. Method.invoke() is
       
  3222     // cached and users of the cache care about each active version of
       
  3223     // the method so we have to track this previous version.
       
  3224     // Do this before methods get switched
       
  3225     Universe::reflect_invoke_cache()->add_previous_version(
       
  3226       the_class->method_with_idnum(Universe::reflect_invoke_cache()->method_idnum()));
       
  3227   }
       
  3228 
       
  3229   // Deoptimize all compiled code that depends on this class
  3220   // Deoptimize all compiled code that depends on this class
  3230   flush_dependent_code(the_class, THREAD);
  3221   flush_dependent_code(the_class, THREAD);
  3231 
  3222 
  3232   _old_methods = the_class->methods();
  3223   _old_methods = the_class->methods();
  3233   _new_methods = scratch_class->methods();
  3224   _new_methods = scratch_class->methods();