aboutsummaryrefslogtreecommitdiffstats
path: root/hotspot
diff options
context:
space:
mode:
authorPrzemysław Rumik <przemelek@gmail.com>2018-03-24 16:36:29 +0100
committerPrzemysław Rumik <przemelek@gmail.com>2018-03-24 16:36:29 +0100
commit57086f31f524ecfe3bfed0341d7a0289ce2a3e86 (patch)
tree04429cf96a89260a0a01ea047c3de6b2984dc1e0 /hotspot
parent10ef78858177953adc80ba6a495e597a4ef99281 (diff)
downloaddcevm-57086f31f524ecfe3bfed0341d7a0289ce2a3e86.tar.gz
dcevm-57086f31f524ecfe3bfed0341d7a0289ce2a3e86.zip
fix for proper incrementation of classRedefinedCount, till now we were updating value in old class Class file
Diffstat (limited to 'hotspot')
-rw-r--r--hotspot/.hg/patches/light-updateClassRedefinedCount-java8.patch28
-rw-r--r--hotspot/.hg/patches/series1
2 files changed, 29 insertions, 0 deletions
diff --git a/hotspot/.hg/patches/light-updateClassRedefinedCount-java8.patch b/hotspot/.hg/patches/light-updateClassRedefinedCount-java8.patch
new file mode 100644
index 00000000..31ca8952
--- /dev/null
+++ b/hotspot/.hg/patches/light-updateClassRedefinedCount-java8.patch
@@ -0,0 +1,28 @@
+diff -r 7bb5278e8ce7 src/share/vm/prims/jvmtiRedefineClasses2.cpp
+--- a/src/share/vm/prims/jvmtiRedefineClasses2.cpp Fri Mar 23 15:32:54 2018 +0100
++++ b/src/share/vm/prims/jvmtiRedefineClasses2.cpp Sat Mar 24 15:49:52 2018 +0100
+@@ -1763,8 +1763,8 @@
+
+ // increment the classRedefinedCount field in the_class and in any
+ // direct and indirect subclasses of the_class
+- increment_class_counter((InstanceKlass *)the_old_class(), THREAD);
+-
++ increment_class_counter((InstanceKlass *)the_new_class(), THREAD);
++
+ }
+
+
+@@ -1864,10 +1864,10 @@
+
+ // Increment the classRedefinedCount field in the specific InstanceKlass
+ // and in all direct and indirect subclasses.
+-void VM_EnhancedRedefineClasses::increment_class_counter(Klass* klass, TRAPS) {
+- oop class_mirror = klass->java_mirror();
++void VM_EnhancedRedefineClasses::increment_class_counter(Klass* klass, TRAPS) {
++ oop class_mirror = klass->old_version()->java_mirror();
+ int new_count = java_lang_Class::classRedefinedCount(class_mirror) + 1;
+- java_lang_Class::set_classRedefinedCount(class_mirror, new_count);
++ java_lang_Class::set_classRedefinedCount(klass->java_mirror(), new_count);
+ RC_TRACE(0x00000008, ("updated count for class=%s to %d", klass->external_name(), new_count));
+ }
+
diff --git a/hotspot/.hg/patches/series b/hotspot/.hg/patches/series
index 59b60583..97875a8c 100644
--- a/hotspot/.hg/patches/series
+++ b/hotspot/.hg/patches/series
@@ -56,3 +56,4 @@ jvmti-lockRedefine-java8.patch #+light-jdk8u144-b01delete
light-jdk8u20-deopt-cp.patch #+light-jdk8u20-b22 #+light-jdk8u31-b13 #+light-jdk8u40-b25 #+light-jdk8u45-b14 #+light-jdk8u51-b16
light-jdk8u66-b17-deopt-cp.patch #+light-jdk8u66-b17 #+light-jdk8u74-b02 #+light-jdk8u92-b14 #+light-jdk8u102-b31 #+light-jdk8u111-b14 #+light-jdk8u112-b16 #+light-jdk8u144-b01 #+light-jdk8u152-b16
dont-clear-f1.patch #+light-jdk8u74-b02 #+light-jdk8u92-b14 #+light-jdk8u102-b31 #+light-jdk8u111-b14 #+light-jdk8u112-b16 #+light-jdk8u144-b01 #+light-jdk8u152-b16
+light-updateClassRedefinedCount-java8.patch #+light-jdk8u112-b16 #+light-jdk8u144-b01 #+light-jdk8u152-b16