Mercurial > hg > truffle
comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 2011:dad31fc330cd
7001379: bootstrap method data needs to be moved from constant pool to a classfile attribute
Reviewed-by: twisti
author | jrose |
---|---|
date | Fri, 03 Dec 2010 15:53:57 -0800 |
parents | f95d63e2154a |
children | 8012aa3ccede |
comparison
equal
deleted
inserted
replaced
2010:7601ab0e1e33 | 2011:dad31fc330cd |
---|---|
212 // these are direct CP entries so they can be directly appended, | 212 // these are direct CP entries so they can be directly appended, |
213 // but double and long take two constant pool entries | 213 // but double and long take two constant pool entries |
214 case JVM_CONSTANT_Double: // fall through | 214 case JVM_CONSTANT_Double: // fall through |
215 case JVM_CONSTANT_Long: | 215 case JVM_CONSTANT_Long: |
216 { | 216 { |
217 scratch_cp->copy_entry_to(scratch_i, *merge_cp_p, *merge_cp_length_p, | 217 constantPoolOopDesc::copy_entry_to(scratch_cp, scratch_i, *merge_cp_p, *merge_cp_length_p, |
218 THREAD); | 218 THREAD); |
219 | 219 |
220 if (scratch_i != *merge_cp_length_p) { | 220 if (scratch_i != *merge_cp_length_p) { |
221 // The new entry in *merge_cp_p is at a different index than | 221 // The new entry in *merge_cp_p is at a different index than |
222 // the new entry in scratch_cp so we need to map the index values. | 222 // the new entry in scratch_cp so we need to map the index values. |
237 // These were indirect CP entries, but they have been changed into | 237 // These were indirect CP entries, but they have been changed into |
238 // symbolOops so these entries can be directly appended. | 238 // symbolOops so these entries can be directly appended. |
239 case JVM_CONSTANT_UnresolvedClass: // fall through | 239 case JVM_CONSTANT_UnresolvedClass: // fall through |
240 case JVM_CONSTANT_UnresolvedString: | 240 case JVM_CONSTANT_UnresolvedString: |
241 { | 241 { |
242 scratch_cp->copy_entry_to(scratch_i, *merge_cp_p, *merge_cp_length_p, | 242 constantPoolOopDesc::copy_entry_to(scratch_cp, scratch_i, *merge_cp_p, *merge_cp_length_p, |
243 THREAD); | 243 THREAD); |
244 | 244 |
245 if (scratch_i != *merge_cp_length_p) { | 245 if (scratch_i != *merge_cp_length_p) { |
246 // The new entry in *merge_cp_p is at a different index than | 246 // The new entry in *merge_cp_p is at a different index than |
247 // the new entry in scratch_cp so we need to map the index values. | 247 // the new entry in scratch_cp so we need to map the index values. |
1091 | 1091 |
1092 case JVM_CONSTANT_Double: | 1092 case JVM_CONSTANT_Double: |
1093 case JVM_CONSTANT_Long: | 1093 case JVM_CONSTANT_Long: |
1094 // just copy the entry to *merge_cp_p, but double and long take | 1094 // just copy the entry to *merge_cp_p, but double and long take |
1095 // two constant pool entries | 1095 // two constant pool entries |
1096 old_cp->copy_entry_to(old_i, *merge_cp_p, old_i, CHECK_0); | 1096 constantPoolOopDesc::copy_entry_to(old_cp, old_i, *merge_cp_p, old_i, CHECK_0); |
1097 old_i++; | 1097 old_i++; |
1098 break; | 1098 break; |
1099 | 1099 |
1100 default: | 1100 default: |
1101 // just copy the entry to *merge_cp_p | 1101 // just copy the entry to *merge_cp_p |
1102 old_cp->copy_entry_to(old_i, *merge_cp_p, old_i, CHECK_0); | 1102 constantPoolOopDesc::copy_entry_to(old_cp, old_i, *merge_cp_p, old_i, CHECK_0); |
1103 break; | 1103 break; |
1104 } | 1104 } |
1105 } // end for each old_cp entry | 1105 } // end for each old_cp entry |
1106 | 1106 |
1107 // We don't need to sanity check that *merge_cp_length_p is within | 1107 // We don't need to sanity check that *merge_cp_length_p is within |