Mercurial > hg > truffle
comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 2332:fbbeec6dad2d
6512830: Error: assert(tag_at(which).is_unresolved_klass(), "Corrupted constant pool")
Summary: Redefine classes copies the constant pool while the constant pool may be resolving strings or classes
Reviewed-by: dcubed, dsamersoff, acorn
author | coleenp |
---|---|
date | Thu, 03 Mar 2011 19:52:23 -0500 |
parents | c5a923563727 |
children | 57552dca1708 |
comparison
equal
deleted
inserted
replaced
2331:9f44e9aad2d9 | 2332:fbbeec6dad2d |
---|---|
1082 for (old_i = 1; old_i < old_cp->length(); old_i++) { | 1082 for (old_i = 1; old_i < old_cp->length(); old_i++) { |
1083 // leave debugging crumb | 1083 // leave debugging crumb |
1084 jbyte old_tag = old_cp->tag_at(old_i).value(); | 1084 jbyte old_tag = old_cp->tag_at(old_i).value(); |
1085 switch (old_tag) { | 1085 switch (old_tag) { |
1086 case JVM_CONSTANT_Class: | 1086 case JVM_CONSTANT_Class: |
1087 case JVM_CONSTANT_UnresolvedClass: | |
1087 // revert the copy to JVM_CONSTANT_UnresolvedClass | 1088 // revert the copy to JVM_CONSTANT_UnresolvedClass |
1089 // May be resolving while calling this so do the same for | |
1090 // JVM_CONSTANT_UnresolvedClass (klass_name_at() deals with transition) | |
1088 (*merge_cp_p)->unresolved_klass_at_put(old_i, | 1091 (*merge_cp_p)->unresolved_klass_at_put(old_i, |
1089 old_cp->klass_name_at(old_i)); | 1092 old_cp->klass_name_at(old_i)); |
1090 break; | 1093 break; |
1091 | 1094 |
1092 case JVM_CONSTANT_Double: | 1095 case JVM_CONSTANT_Double: |