85 } |
85 } |
86 } |
86 } |
87 |
87 |
88 #ifndef PRODUCT |
88 #ifndef PRODUCT |
89 static void check_resolve_method(const char* call_type, Klass* resolved_klass, Symbol* method_name, Symbol* method_signature, TRAPS) { |
89 static void check_resolve_method(const char* call_type, Klass* resolved_klass, Symbol* method_name, Symbol* method_signature, TRAPS) { |
90 methodHandle method; |
90 Method* method; |
91 LinkInfo link_info(resolved_klass, method_name, method_signature, NULL, LinkInfo::skip_access_check); |
91 LinkInfo link_info(resolved_klass, method_name, method_signature, NULL, LinkInfo::skip_access_check); |
92 if (strcmp(call_type, "call_static") == 0) { |
92 if (strcmp(call_type, "call_static") == 0) { |
93 method = LinkResolver::resolve_static_call_or_null(link_info); |
93 method = LinkResolver::resolve_static_call_or_null(link_info); |
94 } else if (strcmp(call_type, "call_virtual") == 0) { |
94 } else if (strcmp(call_type, "call_virtual") == 0) { |
95 method = LinkResolver::resolve_virtual_call_or_null(resolved_klass, link_info); |
95 method = LinkResolver::resolve_virtual_call_or_null(resolved_klass, link_info); |
96 } else if (strcmp(call_type, "call_special") == 0) { |
96 } else if (strcmp(call_type, "call_special") == 0) { |
97 method = LinkResolver::resolve_special_call_or_null(link_info); |
97 method = LinkResolver::resolve_special_call_or_null(link_info); |
98 } else { |
98 } else { |
99 fatal("Unknown or unsupported call type: %s", call_type); |
99 fatal("Unknown or unsupported call type: %s", call_type); |
100 } |
100 } |
101 if (method.is_null()) { |
101 if (method == NULL) { |
102 fatal("Could not resolve %s.%s%s", resolved_klass->external_name(), method_name->as_C_string(), method_signature->as_C_string()); |
102 fatal("Could not resolve %s.%s%s", resolved_klass->external_name(), method_name->as_C_string(), method_signature->as_C_string()); |
103 } |
103 } |
104 } |
104 } |
105 #endif |
105 #endif |
106 |
106 |