1609 case JVM_CONSTANT_ClassIndex: |
1609 case JVM_CONSTANT_ClassIndex: |
1610 case JVM_CONSTANT_UnresolvedClass: |
1610 case JVM_CONSTANT_UnresolvedClass: |
1611 case JVM_CONSTANT_UnresolvedClassInError: |
1611 case JVM_CONSTANT_UnresolvedClassInError: |
1612 case JVM_CONSTANT_StringIndex: |
1612 case JVM_CONSTANT_StringIndex: |
1613 case JVM_CONSTANT_MethodType: |
1613 case JVM_CONSTANT_MethodType: |
|
1614 case JVM_CONSTANT_MethodTypeInError: |
1614 return 3; |
1615 return 3; |
1615 |
1616 |
1616 case JVM_CONSTANT_MethodHandle: |
1617 case JVM_CONSTANT_MethodHandle: |
|
1618 case JVM_CONSTANT_MethodHandleInError: |
1617 return 4; //tag, ref_kind, ref_index |
1619 return 4; //tag, ref_kind, ref_index |
1618 |
1620 |
1619 case JVM_CONSTANT_Integer: |
1621 case JVM_CONSTANT_Integer: |
1620 case JVM_CONSTANT_Float: |
1622 case JVM_CONSTANT_Float: |
1621 case JVM_CONSTANT_Fieldref: |
1623 case JVM_CONSTANT_Fieldref: |
1792 break; |
1794 break; |
1793 } |
1795 } |
1794 case JVM_CONSTANT_MethodHandle: |
1796 case JVM_CONSTANT_MethodHandle: |
1795 case JVM_CONSTANT_MethodHandleInError: { |
1797 case JVM_CONSTANT_MethodHandleInError: { |
1796 *bytes = JVM_CONSTANT_MethodHandle; |
1798 *bytes = JVM_CONSTANT_MethodHandle; |
1797 int kind = method_handle_ref_kind_at(idx); |
1799 int kind = method_handle_ref_kind_at_error_ok(idx); |
1798 idx1 = method_handle_index_at(idx); |
1800 idx1 = method_handle_index_at_error_ok(idx); |
1799 *(bytes+1) = (unsigned char) kind; |
1801 *(bytes+1) = (unsigned char) kind; |
1800 Bytes::put_Java_u2((address) (bytes+2), idx1); |
1802 Bytes::put_Java_u2((address) (bytes+2), idx1); |
1801 DBG(printf("JVM_CONSTANT_MethodHandle: %d %hd", kind, idx1)); |
1803 DBG(printf("JVM_CONSTANT_MethodHandle: %d %hd", kind, idx1)); |
1802 break; |
1804 break; |
1803 } |
1805 } |
1804 case JVM_CONSTANT_MethodType: |
1806 case JVM_CONSTANT_MethodType: |
1805 case JVM_CONSTANT_MethodTypeInError: { |
1807 case JVM_CONSTANT_MethodTypeInError: { |
1806 *bytes = JVM_CONSTANT_MethodType; |
1808 *bytes = JVM_CONSTANT_MethodType; |
1807 idx1 = method_type_index_at(idx); |
1809 idx1 = method_type_index_at_error_ok(idx); |
1808 Bytes::put_Java_u2((address) (bytes+1), idx1); |
1810 Bytes::put_Java_u2((address) (bytes+1), idx1); |
1809 DBG(printf("JVM_CONSTANT_MethodType: %hd", idx1)); |
1811 DBG(printf("JVM_CONSTANT_MethodType: %hd", idx1)); |
1810 break; |
1812 break; |
1811 } |
1813 } |
1812 case JVM_CONSTANT_InvokeDynamic: { |
1814 case JVM_CONSTANT_InvokeDynamic: { |
1990 } |
1992 } |
1991 } |
1993 } |
1992 break; |
1994 break; |
1993 case JVM_CONSTANT_MethodHandle : |
1995 case JVM_CONSTANT_MethodHandle : |
1994 case JVM_CONSTANT_MethodHandleInError : |
1996 case JVM_CONSTANT_MethodHandleInError : |
1995 st->print("ref_kind=%d", method_handle_ref_kind_at(index)); |
1997 st->print("ref_kind=%d", method_handle_ref_kind_at_error_ok(index)); |
1996 st->print(" ref_index=%d", method_handle_index_at(index)); |
1998 st->print(" ref_index=%d", method_handle_index_at_error_ok(index)); |
1997 break; |
1999 break; |
1998 case JVM_CONSTANT_MethodType : |
2000 case JVM_CONSTANT_MethodType : |
1999 case JVM_CONSTANT_MethodTypeInError : |
2001 case JVM_CONSTANT_MethodTypeInError : |
2000 st->print("signature_index=%d", method_type_index_at(index)); |
2002 st->print("signature_index=%d", method_type_index_at_error_ok(index)); |
2001 break; |
2003 break; |
2002 case JVM_CONSTANT_InvokeDynamic : |
2004 case JVM_CONSTANT_InvokeDynamic : |
2003 { |
2005 { |
2004 st->print("bootstrap_method_index=%d", invoke_dynamic_bootstrap_method_ref_index_at(index)); |
2006 st->print("bootstrap_method_index=%d", invoke_dynamic_bootstrap_method_ref_index_at(index)); |
2005 st->print(" name_and_type_index=%d", invoke_dynamic_name_and_type_ref_index_at(index)); |
2007 st->print(" name_and_type_index=%d", invoke_dynamic_name_and_type_ref_index_at(index)); |