Mercurial > hg > graal-compiler
comparison src/share/vm/interpreter/linkResolver.hpp @ 13055:fce21ac5968d
8027229: ICCE expected for >=2 maximally specific default methods.
Summary: Need to process defaults for interfaces for invokespecial
Reviewed-by: lfoltan, hseigel, coleenp, jrose
author | acorn |
---|---|
date | Wed, 13 Nov 2013 07:31:26 -0800 |
parents | 2f8728d92483 |
children | 096c224171c4 7a58803b5069 |
comparison
equal
deleted
inserted
replaced
13054:19f8a5d7600b | 13055:fce21ac5968d |
---|---|
128 static void lookup_instance_method_in_klasses (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS); | 128 static void lookup_instance_method_in_klasses (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS); |
129 static void lookup_method_in_interfaces (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS); | 129 static void lookup_method_in_interfaces (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS); |
130 static void lookup_polymorphic_method (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, | 130 static void lookup_polymorphic_method (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, |
131 KlassHandle current_klass, Handle *appendix_result_or_null, Handle *method_type_result, TRAPS); | 131 KlassHandle current_klass, Handle *appendix_result_or_null, Handle *method_type_result, TRAPS); |
132 | 132 |
133 static int vtable_index_of_interface_method(KlassHandle klass, methodHandle resolved_method, TRAPS); | |
134 static void resolve_klass (KlassHandle& result, constantPoolHandle pool, int index, TRAPS); | 133 static void resolve_klass (KlassHandle& result, constantPoolHandle pool, int index, TRAPS); |
135 | 134 |
136 static void resolve_pool (KlassHandle& resolved_klass, Symbol*& method_name, Symbol*& method_signature, KlassHandle& current_klass, constantPoolHandle pool, int index, TRAPS); | 135 static void resolve_pool (KlassHandle& resolved_klass, Symbol*& method_name, Symbol*& method_signature, KlassHandle& current_klass, constantPoolHandle pool, int index, TRAPS); |
137 | 136 |
138 static void resolve_interface_method(methodHandle& resolved_method, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, TRAPS); | 137 static void resolve_interface_method(methodHandle& resolved_method, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, TRAPS); |
184 // also, does not initialize klass (i.e., no side effects) | 183 // also, does not initialize klass (i.e., no side effects) |
185 static methodHandle resolve_virtual_call_or_null (KlassHandle receiver_klass, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); | 184 static methodHandle resolve_virtual_call_or_null (KlassHandle receiver_klass, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); |
186 static methodHandle resolve_interface_call_or_null(KlassHandle receiver_klass, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); | 185 static methodHandle resolve_interface_call_or_null(KlassHandle receiver_klass, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); |
187 static methodHandle resolve_static_call_or_null (KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); | 186 static methodHandle resolve_static_call_or_null (KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); |
188 static methodHandle resolve_special_call_or_null (KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); | 187 static methodHandle resolve_special_call_or_null (KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); |
188 static int vtable_index_of_interface_method(KlassHandle klass, methodHandle resolved_method); | |
189 | 189 |
190 // same as above for compile-time resolution; returns vtable_index if current_klass if linked | 190 // same as above for compile-time resolution; returns vtable_index if current_klass if linked |
191 static int resolve_virtual_vtable_index (KlassHandle receiver_klass, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); | 191 static int resolve_virtual_vtable_index (KlassHandle receiver_klass, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass); |
192 | 192 |
193 // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful) | 193 // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful) |