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();