278 const LinkInfo& link_info); 279 static methodHandle resolve_interface_call_or_null(KlassHandle receiver_klass, 280 const LinkInfo& link_info); 281 static methodHandle resolve_static_call_or_null (const LinkInfo& link_info); 282 static methodHandle resolve_special_call_or_null (const LinkInfo& link_info); 283 284 static int vtable_index_of_interface_method(KlassHandle klass, const methodHandle& resolved_method); 285 286 // same as above for compile-time resolution; returns vtable_index if current_klass if linked 287 static int resolve_virtual_vtable_index (KlassHandle receiver_klass, 288 const LinkInfo& link_info); 289 290 // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful) 291 static methodHandle linktime_resolve_virtual_method_or_null (const LinkInfo& link_info); 292 static methodHandle linktime_resolve_interface_method_or_null(const LinkInfo& link_info); 293 294 // runtime resolving from constant pool 295 static void resolve_invoke(CallInfo& result, Handle recv, 296 const constantPoolHandle& pool, int index, 297 Bytecodes::Code byte, TRAPS); 298 private: 299 static void trace_method_resolution(const char* prefix, KlassHandle klass, 300 KlassHandle resolved_klass, 301 const methodHandle& method) PRODUCT_RETURN; 302 }; 303 #endif // SHARE_VM_INTERPRETER_LINKRESOLVER_HPP | 278 const LinkInfo& link_info); 279 static methodHandle resolve_interface_call_or_null(KlassHandle receiver_klass, 280 const LinkInfo& link_info); 281 static methodHandle resolve_static_call_or_null (const LinkInfo& link_info); 282 static methodHandle resolve_special_call_or_null (const LinkInfo& link_info); 283 284 static int vtable_index_of_interface_method(KlassHandle klass, const methodHandle& resolved_method); 285 286 // same as above for compile-time resolution; returns vtable_index if current_klass if linked 287 static int resolve_virtual_vtable_index (KlassHandle receiver_klass, 288 const LinkInfo& link_info); 289 290 // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful) 291 static methodHandle linktime_resolve_virtual_method_or_null (const LinkInfo& link_info); 292 static methodHandle linktime_resolve_interface_method_or_null(const LinkInfo& link_info); 293 294 // runtime resolving from constant pool 295 static void resolve_invoke(CallInfo& result, Handle recv, 296 const constantPoolHandle& pool, int index, 297 Bytecodes::Code byte, TRAPS); 298 }; 299 #endif // SHARE_VM_INTERPRETER_LINKRESOLVER_HPP |