diff src/share/vm/memory/metaspaceShared.cpp @ 12281:4f9a42c33738

8022887: Assertion hit while using class and redefining it with RedefineClasses simultaneously Summary: Need to refetch each method from InstanceKlass after all safepoints. Removed leaky PreviousVersionInfo code. Reviewed-by: dcubed, sspitsyn
author coleenp
date Fri, 20 Sep 2013 09:30:02 -0400
parents 740e263c80c6
children 63a4eb8bcd23 9c3dc501b5eb
line wrap: on
line diff
--- a/src/share/vm/memory/metaspaceShared.cpp	Thu Sep 19 08:47:46 2013 +0200
+++ b/src/share/vm/memory/metaspaceShared.cpp	Fri Sep 20 09:30:02 2013 -0400
@@ -103,9 +103,10 @@
     if (k->oop_is_instance()) {
       InstanceKlass* ik = InstanceKlass::cast(k);
       for (int i = 0; i < ik->methods()->length(); i++) {
-        ResourceMark rm;
         Method* m = ik->methods()->at(i);
-        (new Fingerprinter(m))->fingerprint();
+        Fingerprinter fp(m);
+        // The side effect of this call sets method's fingerprint field.
+        fp.fingerprint();
       }
     }
   }