Mercurial > hg > truffle
comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 614:3db67f76d308
Merge
author | acorn |
---|---|
date | Thu, 05 Mar 2009 22:07:29 -0500 |
parents | afa80fa86d22 98cb887364d3 |
children | 7bb995fbd3c0 |
comparison
equal
deleted
inserted
replaced
613:5caef2219893 | 614:3db67f76d308 |
---|---|
1350 bool VM_RedefineClasses::rewrite_cp_refs(instanceKlassHandle scratch_class, | 1350 bool VM_RedefineClasses::rewrite_cp_refs(instanceKlassHandle scratch_class, |
1351 TRAPS) { | 1351 TRAPS) { |
1352 | 1352 |
1353 // rewrite constant pool references in the methods: | 1353 // rewrite constant pool references in the methods: |
1354 if (!rewrite_cp_refs_in_methods(scratch_class, THREAD)) { | 1354 if (!rewrite_cp_refs_in_methods(scratch_class, THREAD)) { |
1355 // propogate failure back to caller | 1355 // propagate failure back to caller |
1356 return false; | 1356 return false; |
1357 } | 1357 } |
1358 | 1358 |
1359 // rewrite constant pool references in the class_annotations: | 1359 // rewrite constant pool references in the class_annotations: |
1360 if (!rewrite_cp_refs_in_class_annotations(scratch_class, THREAD)) { | 1360 if (!rewrite_cp_refs_in_class_annotations(scratch_class, THREAD)) { |
1361 // propogate failure back to caller | 1361 // propagate failure back to caller |
1362 return false; | 1362 return false; |
1363 } | 1363 } |
1364 | 1364 |
1365 // rewrite constant pool references in the fields_annotations: | 1365 // rewrite constant pool references in the fields_annotations: |
1366 if (!rewrite_cp_refs_in_fields_annotations(scratch_class, THREAD)) { | 1366 if (!rewrite_cp_refs_in_fields_annotations(scratch_class, THREAD)) { |
1367 // propogate failure back to caller | 1367 // propagate failure back to caller |
1368 return false; | 1368 return false; |
1369 } | 1369 } |
1370 | 1370 |
1371 // rewrite constant pool references in the methods_annotations: | 1371 // rewrite constant pool references in the methods_annotations: |
1372 if (!rewrite_cp_refs_in_methods_annotations(scratch_class, THREAD)) { | 1372 if (!rewrite_cp_refs_in_methods_annotations(scratch_class, THREAD)) { |
1373 // propogate failure back to caller | 1373 // propagate failure back to caller |
1374 return false; | 1374 return false; |
1375 } | 1375 } |
1376 | 1376 |
1377 // rewrite constant pool references in the methods_parameter_annotations: | 1377 // rewrite constant pool references in the methods_parameter_annotations: |
1378 if (!rewrite_cp_refs_in_methods_parameter_annotations(scratch_class, | 1378 if (!rewrite_cp_refs_in_methods_parameter_annotations(scratch_class, |
1379 THREAD)) { | 1379 THREAD)) { |
1380 // propogate failure back to caller | 1380 // propagate failure back to caller |
1381 return false; | 1381 return false; |
1382 } | 1382 } |
1383 | 1383 |
1384 // rewrite constant pool references in the methods_default_annotations: | 1384 // rewrite constant pool references in the methods_default_annotations: |
1385 if (!rewrite_cp_refs_in_methods_default_annotations(scratch_class, | 1385 if (!rewrite_cp_refs_in_methods_default_annotations(scratch_class, |
1386 THREAD)) { | 1386 THREAD)) { |
1387 // propogate failure back to caller | 1387 // propagate failure back to caller |
1388 return false; | 1388 return false; |
1389 } | 1389 } |
1390 | 1390 |
1391 return true; | 1391 return true; |
1392 } // end rewrite_cp_refs() | 1392 } // end rewrite_cp_refs() |
1601 for (; calc_num_annotations < num_annotations; calc_num_annotations++) { | 1601 for (; calc_num_annotations < num_annotations; calc_num_annotations++) { |
1602 if (!rewrite_cp_refs_in_annotation_struct(annotations_typeArray, | 1602 if (!rewrite_cp_refs_in_annotation_struct(annotations_typeArray, |
1603 byte_i_ref, THREAD)) { | 1603 byte_i_ref, THREAD)) { |
1604 RC_TRACE_WITH_THREAD(0x02000000, THREAD, | 1604 RC_TRACE_WITH_THREAD(0x02000000, THREAD, |
1605 ("bad annotation_struct at %d", calc_num_annotations)); | 1605 ("bad annotation_struct at %d", calc_num_annotations)); |
1606 // propogate failure back to caller | 1606 // propagate failure back to caller |
1607 return false; | 1607 return false; |
1608 } | 1608 } |
1609 } | 1609 } |
1610 assert(num_annotations == calc_num_annotations, "sanity check"); | 1610 assert(num_annotations == calc_num_annotations, "sanity check"); |
1611 | 1611 |
1667 | 1667 |
1668 if (!rewrite_cp_refs_in_element_value(annotations_typeArray, | 1668 if (!rewrite_cp_refs_in_element_value(annotations_typeArray, |
1669 byte_i_ref, THREAD)) { | 1669 byte_i_ref, THREAD)) { |
1670 RC_TRACE_WITH_THREAD(0x02000000, THREAD, | 1670 RC_TRACE_WITH_THREAD(0x02000000, THREAD, |
1671 ("bad element_value at %d", calc_num_element_value_pairs)); | 1671 ("bad element_value at %d", calc_num_element_value_pairs)); |
1672 // propogate failure back to caller | 1672 // propagate failure back to caller |
1673 return false; | 1673 return false; |
1674 } | 1674 } |
1675 } // end for each component | 1675 } // end for each component |
1676 assert(num_element_value_pairs == calc_num_element_value_pairs, | 1676 assert(num_element_value_pairs == calc_num_element_value_pairs, |
1677 "sanity check"); | 1677 "sanity check"); |
1816 case '@': | 1816 case '@': |
1817 // For the above tag value, value.attr_value is the right union | 1817 // For the above tag value, value.attr_value is the right union |
1818 // field. This is a nested annotation. | 1818 // field. This is a nested annotation. |
1819 if (!rewrite_cp_refs_in_annotation_struct(annotations_typeArray, | 1819 if (!rewrite_cp_refs_in_annotation_struct(annotations_typeArray, |
1820 byte_i_ref, THREAD)) { | 1820 byte_i_ref, THREAD)) { |
1821 // propogate failure back to caller | 1821 // propagate failure back to caller |
1822 return false; | 1822 return false; |
1823 } | 1823 } |
1824 break; | 1824 break; |
1825 | 1825 |
1826 case '[': | 1826 case '[': |
1843 for (; calc_num_values < num_values; calc_num_values++) { | 1843 for (; calc_num_values < num_values; calc_num_values++) { |
1844 if (!rewrite_cp_refs_in_element_value( | 1844 if (!rewrite_cp_refs_in_element_value( |
1845 annotations_typeArray, byte_i_ref, THREAD)) { | 1845 annotations_typeArray, byte_i_ref, THREAD)) { |
1846 RC_TRACE_WITH_THREAD(0x02000000, THREAD, | 1846 RC_TRACE_WITH_THREAD(0x02000000, THREAD, |
1847 ("bad nested element_value at %d", calc_num_values)); | 1847 ("bad nested element_value at %d", calc_num_values)); |
1848 // propogate failure back to caller | 1848 // propagate failure back to caller |
1849 return false; | 1849 return false; |
1850 } | 1850 } |
1851 } | 1851 } |
1852 assert(num_values == calc_num_values, "sanity check"); | 1852 assert(num_values == calc_num_values, "sanity check"); |
1853 } break; | 1853 } break; |
1887 int byte_i = 0; // byte index into field_annotations | 1887 int byte_i = 0; // byte index into field_annotations |
1888 if (!rewrite_cp_refs_in_annotations_typeArray(field_annotations, byte_i, | 1888 if (!rewrite_cp_refs_in_annotations_typeArray(field_annotations, byte_i, |
1889 THREAD)) { | 1889 THREAD)) { |
1890 RC_TRACE_WITH_THREAD(0x02000000, THREAD, | 1890 RC_TRACE_WITH_THREAD(0x02000000, THREAD, |
1891 ("bad field_annotations at %d", i)); | 1891 ("bad field_annotations at %d", i)); |
1892 // propogate failure back to caller | 1892 // propagate failure back to caller |
1893 return false; | 1893 return false; |
1894 } | 1894 } |
1895 } | 1895 } |
1896 | 1896 |
1897 return true; | 1897 return true; |
1924 int byte_i = 0; // byte index into method_annotations | 1924 int byte_i = 0; // byte index into method_annotations |
1925 if (!rewrite_cp_refs_in_annotations_typeArray(method_annotations, byte_i, | 1925 if (!rewrite_cp_refs_in_annotations_typeArray(method_annotations, byte_i, |
1926 THREAD)) { | 1926 THREAD)) { |
1927 RC_TRACE_WITH_THREAD(0x02000000, THREAD, | 1927 RC_TRACE_WITH_THREAD(0x02000000, THREAD, |
1928 ("bad method_annotations at %d", i)); | 1928 ("bad method_annotations at %d", i)); |
1929 // propogate failure back to caller | 1929 // propagate failure back to caller |
1930 return false; | 1930 return false; |
1931 } | 1931 } |
1932 } | 1932 } |
1933 | 1933 |
1934 return true; | 1934 return true; |
1992 for (; calc_num_parameters < num_parameters; calc_num_parameters++) { | 1992 for (; calc_num_parameters < num_parameters; calc_num_parameters++) { |
1993 if (!rewrite_cp_refs_in_annotations_typeArray( | 1993 if (!rewrite_cp_refs_in_annotations_typeArray( |
1994 method_parameter_annotations, byte_i, THREAD)) { | 1994 method_parameter_annotations, byte_i, THREAD)) { |
1995 RC_TRACE_WITH_THREAD(0x02000000, THREAD, | 1995 RC_TRACE_WITH_THREAD(0x02000000, THREAD, |
1996 ("bad method_parameter_annotations at %d", calc_num_parameters)); | 1996 ("bad method_parameter_annotations at %d", calc_num_parameters)); |
1997 // propogate failure back to caller | 1997 // propagate failure back to caller |
1998 return false; | 1998 return false; |
1999 } | 1999 } |
2000 } | 2000 } |
2001 assert(num_parameters == calc_num_parameters, "sanity check"); | 2001 assert(num_parameters == calc_num_parameters, "sanity check"); |
2002 } | 2002 } |
2042 | 2042 |
2043 if (!rewrite_cp_refs_in_element_value( | 2043 if (!rewrite_cp_refs_in_element_value( |
2044 method_default_annotations, byte_i, THREAD)) { | 2044 method_default_annotations, byte_i, THREAD)) { |
2045 RC_TRACE_WITH_THREAD(0x02000000, THREAD, | 2045 RC_TRACE_WITH_THREAD(0x02000000, THREAD, |
2046 ("bad default element_value at %d", i)); | 2046 ("bad default element_value at %d", i)); |
2047 // propogate failure back to caller | 2047 // propagate failure back to caller |
2048 return false; | 2048 return false; |
2049 } | 2049 } |
2050 } | 2050 } |
2051 | 2051 |
2052 return true; | 2052 return true; |