< prev index next >

src/hotspot/share/interpreter/linkResolver.hpp

Print this page
rev 49011 : 8197405: Improve messages of AbstractMethodErrors and IncompatibleClassChangeErrors.
Reviewed-by: coleenp, dholmes


 330 
 331   static int vtable_index_of_interface_method(Klass* klass, const methodHandle& resolved_method);
 332 
 333   // same as above for compile-time resolution; returns vtable_index if current_klass if linked
 334   static int resolve_virtual_vtable_index  (Klass* receiver_klass,
 335                                             const LinkInfo& link_info);
 336 
 337   // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful)
 338   static methodHandle linktime_resolve_virtual_method_or_null  (const LinkInfo& link_info);
 339   static methodHandle linktime_resolve_interface_method_or_null(const LinkInfo& link_info);
 340 
 341   // runtime resolving from constant pool
 342   static void resolve_invoke(CallInfo& result, Handle recv,
 343                              const constantPoolHandle& pool, int index,
 344                              Bytecodes::Code byte, TRAPS);
 345 
 346   // runtime resolving from attached method
 347   static void resolve_invoke(CallInfo& result, Handle& recv,
 348                              const methodHandle& attached_method,
 349                              Bytecodes::Code byte, TRAPS);








 350 };
 351 #endif // SHARE_VM_INTERPRETER_LINKRESOLVER_HPP


 330 
 331   static int vtable_index_of_interface_method(Klass* klass, const methodHandle& resolved_method);
 332 
 333   // same as above for compile-time resolution; returns vtable_index if current_klass if linked
 334   static int resolve_virtual_vtable_index  (Klass* receiver_klass,
 335                                             const LinkInfo& link_info);
 336 
 337   // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful)
 338   static methodHandle linktime_resolve_virtual_method_or_null  (const LinkInfo& link_info);
 339   static methodHandle linktime_resolve_interface_method_or_null(const LinkInfo& link_info);
 340 
 341   // runtime resolving from constant pool
 342   static void resolve_invoke(CallInfo& result, Handle recv,
 343                              const constantPoolHandle& pool, int index,
 344                              Bytecodes::Code byte, TRAPS);
 345 
 346   // runtime resolving from attached method
 347   static void resolve_invoke(CallInfo& result, Handle& recv,
 348                              const methodHandle& attached_method,
 349                              Bytecodes::Code byte, TRAPS);
 350 
 351  public:
 352   // No need to report selected method differing from resolved method.
 353   static void throw_abstract_method_error(const methodHandle& method, Klass *recv_klass, TRAPS);
 354   // Selected method is abstract.
 355   static void throw_abstract_method_error_abstract(const methodHandle& resolved_method,
 356                                                    const methodHandle& selected_method,
 357                                                    Klass *recv_klass, TRAPS);
 358 };
 359 #endif // SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
< prev index next >