Mercurial > hg > graal-compiler
comparison src/share/vm/oops/method.cpp @ 7462:ade95d680b42
8004728: Add hotspot support for parameter reflection
Summary: Add hotspot support for parameter reflection
Reviewed-by: acorn, jrose, coleenp
Contributed-by: eric.mccorkle@oracle.com
author | coleenp |
---|---|
date | Tue, 08 Jan 2013 14:01:36 -0500 |
parents | 35431a769282 |
children | 18c3c3fa291b |
comparison
equal
deleted
inserted
replaced
7460:6c3f47d964f3 | 7462:ade95d680b42 |
---|---|
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(); |