You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

light-updateClassRedefinedCount-java8.patch 1.2KB

12345678910111213141516171819202122232425262728
  1. diff -r 7bb5278e8ce7 src/share/vm/prims/jvmtiRedefineClasses2.cpp
  2. --- a/src/share/vm/prims/jvmtiRedefineClasses2.cpp Fri Mar 23 15:32:54 2018 +0100
  3. +++ b/src/share/vm/prims/jvmtiRedefineClasses2.cpp Sat Mar 24 15:49:52 2018 +0100
  4. @@ -1763,8 +1763,8 @@
  5. // increment the classRedefinedCount field in the_class and in any
  6. // direct and indirect subclasses of the_class
  7. - increment_class_counter((InstanceKlass *)the_old_class(), THREAD);
  8. -
  9. + increment_class_counter((InstanceKlass *)the_new_class(), THREAD);
  10. +
  11. }
  12. @@ -1864,10 +1864,10 @@
  13. // Increment the classRedefinedCount field in the specific InstanceKlass
  14. // and in all direct and indirect subclasses.
  15. -void VM_EnhancedRedefineClasses::increment_class_counter(Klass* klass, TRAPS) {
  16. - oop class_mirror = klass->java_mirror();
  17. +void VM_EnhancedRedefineClasses::increment_class_counter(Klass* klass, TRAPS) {
  18. + oop class_mirror = klass->old_version()->java_mirror();
  19. int new_count = java_lang_Class::classRedefinedCount(class_mirror) + 1;
  20. - java_lang_Class::set_classRedefinedCount(class_mirror, new_count);
  21. + java_lang_Class::set_classRedefinedCount(klass->java_mirror(), new_count);
  22. RC_TRACE(0x00000008, ("updated count for class=%s to %d", klass->external_name(), new_count));
  23. }