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.

orig-meth-ids-revert-jdk8u152.patch 1.4KB

12345678910111213141516171819202122232425262728
  1. diff --git a/src/share/vm/prims/jvmtiRedefineClasses2.cpp b/src/share/vm/prims/jvmtiRedefineClasses2.cpp
  2. index d35406d..b41dfe9 100644
  3. --- a/src/share/vm/prims/jvmtiRedefineClasses2.cpp
  4. +++ b/src/share/vm/prims/jvmtiRedefineClasses2.cpp
  5. @@ -784,8 +784,10 @@
  6. if (idnum_owner != NULL) {
  7. // There is already a method assigned this idnum -- switch them
  8. idnum_owner->set_method_idnum(new_num);
  9. + idnum_owner->set_orig_method_idnum(k_new_method->orig_method_idnum());
  10. }
  11. k_new_method->set_method_idnum(old_num);
  12. + k_new_method->set_orig_method_idnum(k_old_method->orig_method_idnum());
  13. RC_TRACE(0x00008000,
  14. ("swapping idnum of new and old method %d / %d!", new_num, old_num));
  15. }
  16. @@ -816,9 +818,12 @@
  17. Method* idnum_owner = new_class->method_with_idnum(num);
  18. if (idnum_owner != NULL) {
  19. // There is already a method assigned this idnum -- switch them
  20. + // Take current and original idnum from the new_method
  21. idnum_owner->set_method_idnum(new_num);
  22. + idnum_owner->set_orig_method_idnum(k_new_method->orig_method_idnum());
  23. }
  24. k_new_method->set_method_idnum(num);
  25. + k_new_method->set_orig_method_idnum(num);
  26. }
  27. RC_TRACE(0x00008000, ("Method added: new: %s [%d], idnum %d",
  28. k_new_method->name_and_sig_as_C_string(), ni, k_new_method->method_idnum()));