62 AccessFlags access_flags, |
62 AccessFlags access_flags, |
63 int compressed_line_number_size, |
63 int compressed_line_number_size, |
64 int localvariable_table_length, |
64 int localvariable_table_length, |
65 int exception_table_length, |
65 int exception_table_length, |
66 int checked_exceptions_length, |
66 int checked_exceptions_length, |
|
67 int method_parameters_length, |
67 u2 generic_signature_index, |
68 u2 generic_signature_index, |
68 ConstMethod::MethodType method_type, |
69 ConstMethod::MethodType method_type, |
69 TRAPS) { |
70 TRAPS) { |
70 assert(!access_flags.is_native() || byte_code_size == 0, |
71 assert(!access_flags.is_native() || byte_code_size == 0, |
71 "native methods should not contain byte codes"); |
72 "native methods should not contain byte codes"); |
73 byte_code_size, |
74 byte_code_size, |
74 compressed_line_number_size, |
75 compressed_line_number_size, |
75 localvariable_table_length, |
76 localvariable_table_length, |
76 exception_table_length, |
77 exception_table_length, |
77 checked_exceptions_length, |
78 checked_exceptions_length, |
|
79 method_parameters_length, |
78 generic_signature_index, |
80 generic_signature_index, |
79 method_type, |
81 method_type, |
80 CHECK_NULL); |
82 CHECK_NULL); |
81 |
83 |
82 int size = Method::size(access_flags.is_native()); |
84 int size = Method::size(access_flags.is_native()); |
1033 if (must_be_static) flags_bits |= JVM_ACC_STATIC; |
1035 if (must_be_static) flags_bits |= JVM_ACC_STATIC; |
1034 assert((flags_bits & JVM_ACC_PUBLIC) == 0, "do not expose these methods"); |
1036 assert((flags_bits & JVM_ACC_PUBLIC) == 0, "do not expose these methods"); |
1035 |
1037 |
1036 methodHandle m; |
1038 methodHandle m; |
1037 { |
1039 { |
1038 Method* m_oop = Method::allocate(loader_data, 0, accessFlags_from(flags_bits), |
1040 Method* m_oop = Method::allocate(loader_data, 0, |
1039 0, 0, 0, 0, 0, ConstMethod::NORMAL, CHECK_(empty)); |
1041 accessFlags_from(flags_bits), |
|
1042 0, 0, 0, 0, 0, 0, |
|
1043 ConstMethod::NORMAL, CHECK_(empty)); |
1040 m = methodHandle(THREAD, m_oop); |
1044 m = methodHandle(THREAD, m_oop); |
1041 } |
1045 } |
1042 m->set_constants(cp()); |
1046 m->set_constants(cp()); |
1043 m->set_name_index(_imcp_invoke_name); |
1047 m->set_name_index(_imcp_invoke_name); |
1044 m->set_signature_index(_imcp_invoke_signature); |
1048 m->set_signature_index(_imcp_invoke_signature); |
1086 AccessFlags flags = m->access_flags(); |
1090 AccessFlags flags = m->access_flags(); |
1087 u2 generic_signature_index = m->generic_signature_index(); |
1091 u2 generic_signature_index = m->generic_signature_index(); |
1088 int checked_exceptions_len = m->checked_exceptions_length(); |
1092 int checked_exceptions_len = m->checked_exceptions_length(); |
1089 int localvariable_len = m->localvariable_table_length(); |
1093 int localvariable_len = m->localvariable_table_length(); |
1090 int exception_table_len = m->exception_table_length(); |
1094 int exception_table_len = m->exception_table_length(); |
|
1095 int method_parameters_len = m->method_parameters_length(); |
1091 |
1096 |
1092 ClassLoaderData* loader_data = m->method_holder()->class_loader_data(); |
1097 ClassLoaderData* loader_data = m->method_holder()->class_loader_data(); |
1093 Method* newm_oop = Method::allocate(loader_data, |
1098 Method* newm_oop = Method::allocate(loader_data, |
1094 new_code_length, |
1099 new_code_length, |
1095 flags, |
1100 flags, |
1096 new_compressed_linenumber_size, |
1101 new_compressed_linenumber_size, |
1097 localvariable_len, |
1102 localvariable_len, |
1098 exception_table_len, |
1103 exception_table_len, |
1099 checked_exceptions_len, |
1104 checked_exceptions_len, |
|
1105 method_parameters_len, |
1100 generic_signature_index, |
1106 generic_signature_index, |
1101 m->method_type(), |
1107 m->method_type(), |
1102 CHECK_(methodHandle())); |
1108 CHECK_(methodHandle())); |
1103 methodHandle newm (THREAD, newm_oop); |
1109 methodHandle newm (THREAD, newm_oop); |
1104 int new_method_size = newm->method_size(); |
1110 int new_method_size = newm->method_size(); |