Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
12279:6eb908998b32 | 12281:4f9a42c33738 |
---|---|
101 for (int i = 0; i < _global_klass_objects->length(); i++) { | 101 for (int i = 0; i < _global_klass_objects->length(); i++) { |
102 Klass* k = _global_klass_objects->at(i); | 102 Klass* k = _global_klass_objects->at(i); |
103 if (k->oop_is_instance()) { | 103 if (k->oop_is_instance()) { |
104 InstanceKlass* ik = InstanceKlass::cast(k); | 104 InstanceKlass* ik = InstanceKlass::cast(k); |
105 for (int i = 0; i < ik->methods()->length(); i++) { | 105 for (int i = 0; i < ik->methods()->length(); i++) { |
106 ResourceMark rm; | |
107 Method* m = ik->methods()->at(i); | 106 Method* m = ik->methods()->at(i); |
108 (new Fingerprinter(m))->fingerprint(); | 107 Fingerprinter fp(m); |
108 // The side effect of this call sets method's fingerprint field. | |
109 fp.fingerprint(); | |
109 } | 110 } |
110 } | 111 } |
111 } | 112 } |
112 } | 113 } |
113 | 114 |