Mercurial > hg > graal-jvmci-8
comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 12101:ff2520b97b00
8023547: com/sun/jdi/RedefineMulti.sh fails with IllegalArgumentException after JDK-8021948 .
Summary: Need to check if the constant pool mapping returns 0.
Reviewed-by: coleenp, sspitsyn
author | jiangli |
---|---|
date | Thu, 22 Aug 2013 19:27:42 -0400 |
parents | e22ee8e7ae62 |
children | ff8a09595db3 b2e698d2276c |
comparison
equal
deleted
inserted
replaced
12098:669d9a235486 | 12101:ff2520b97b00 |
---|---|
1552 THREAD)) { | 1552 THREAD)) { |
1553 // propagate failure back to caller | 1553 // propagate failure back to caller |
1554 return false; | 1554 return false; |
1555 } | 1555 } |
1556 | 1556 |
1557 // rewrite sourc file name index: | 1557 // rewrite source file name index: |
1558 u2 source_file_name_idx = scratch_class->source_file_name_index(); | 1558 u2 source_file_name_idx = scratch_class->source_file_name_index(); |
1559 if (source_file_name_idx != 0) { | 1559 if (source_file_name_idx != 0) { |
1560 u2 new_source_file_name_idx = find_new_index(source_file_name_idx); | 1560 u2 new_source_file_name_idx = find_new_index(source_file_name_idx); |
1561 scratch_class->set_source_file_name_index(new_source_file_name_idx); | 1561 if (new_source_file_name_idx != 0) { |
1562 scratch_class->set_source_file_name_index(new_source_file_name_idx); | |
1563 } | |
1562 } | 1564 } |
1563 | 1565 |
1564 // rewrite class generic signature index: | 1566 // rewrite class generic signature index: |
1565 u2 generic_signature_index = scratch_class->generic_signature_index(); | 1567 u2 generic_signature_index = scratch_class->generic_signature_index(); |
1566 if (generic_signature_index != 0) { | 1568 if (generic_signature_index != 0) { |
1567 u2 new_generic_signature_index = find_new_index(generic_signature_index); | 1569 u2 new_generic_signature_index = find_new_index(generic_signature_index); |
1568 scratch_class->set_generic_signature_index(new_generic_signature_index); | 1570 if (new_generic_signature_index != 0) { |
1571 scratch_class->set_generic_signature_index(new_generic_signature_index); | |
1572 } | |
1569 } | 1573 } |
1570 | 1574 |
1571 return true; | 1575 return true; |
1572 } // end rewrite_cp_refs() | 1576 } // end rewrite_cp_refs() |
1573 | 1577 |
1735 const int len = method->method_parameters_length(); | 1739 const int len = method->method_parameters_length(); |
1736 MethodParametersElement* elem = method->method_parameters_start(); | 1740 MethodParametersElement* elem = method->method_parameters_start(); |
1737 | 1741 |
1738 for (int i = 0; i < len; i++) { | 1742 for (int i = 0; i < len; i++) { |
1739 const u2 cp_index = elem[i].name_cp_index; | 1743 const u2 cp_index = elem[i].name_cp_index; |
1740 elem[i].name_cp_index = find_new_index(cp_index); | 1744 const u2 new_cp_index = find_new_index(cp_index); |
1745 if (new_cp_index != 0) { | |
1746 elem[i].name_cp_index = new_cp_index; | |
1747 } | |
1741 } | 1748 } |
1742 } | 1749 } |
1743 } // end rewrite_cp_refs_in_method() | 1750 } // end rewrite_cp_refs_in_method() |
1744 | 1751 |
1745 | 1752 |