< prev index next >

src/hotspot/share/interpreter/linkResolver.hpp

Print this page

349   static int resolve_virtual_vtable_index  (Klass* receiver_klass,
350                                             const LinkInfo& link_info);
351 
352   // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful)
353   static Method* linktime_resolve_virtual_method_or_null  (const LinkInfo& link_info);
354   static Method* linktime_resolve_interface_method_or_null(const LinkInfo& link_info);
355 
356   // runtime resolving from constant pool
357   static void resolve_invoke(CallInfo& result, Handle recv,
358                              const constantPoolHandle& pool, int index,
359                              Bytecodes::Code byte, ClassInitMode static_mode, TRAPS);
360   static void resolve_invoke(CallInfo& result, Handle recv,
361                              const constantPoolHandle& pool, int index,
362                              Bytecodes::Code byte, TRAPS) {
363     resolve_invoke(result, recv, pool, index, byte, ClassInitMode::init, THREAD);
364   }
365 
366   // runtime resolving from attached method
367   static void resolve_invoke(CallInfo& result, Handle& recv,
368                              const methodHandle& attached_method,
369                              Bytecodes::Code byte, TRAPS);
370 
371   // Only resolved method known.
372   static void throw_abstract_method_error(const methodHandle& resolved_method, TRAPS) {
373     throw_abstract_method_error(resolved_method, methodHandle(), nullptr, CHECK);
374   }
375   // Resolved method and receiver klass know.
376   static void throw_abstract_method_error(const methodHandle& resolved_method, Klass *recv_klass, TRAPS) {
377     throw_abstract_method_error(resolved_method, methodHandle(), recv_klass, CHECK);
378   }
379   // Selected method is abstract.
380   static void throw_abstract_method_error(const methodHandle& resolved_method,
381                                           const methodHandle& selected_method,
382                                           Klass *recv_klass, TRAPS);
383 };
384 #endif // SHARE_INTERPRETER_LINKRESOLVER_HPP

349   static int resolve_virtual_vtable_index  (Klass* receiver_klass,
350                                             const LinkInfo& link_info);
351 
352   // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful)
353   static Method* linktime_resolve_virtual_method_or_null  (const LinkInfo& link_info);
354   static Method* linktime_resolve_interface_method_or_null(const LinkInfo& link_info);
355 
356   // runtime resolving from constant pool
357   static void resolve_invoke(CallInfo& result, Handle recv,
358                              const constantPoolHandle& pool, int index,
359                              Bytecodes::Code byte, ClassInitMode static_mode, TRAPS);
360   static void resolve_invoke(CallInfo& result, Handle recv,
361                              const constantPoolHandle& pool, int index,
362                              Bytecodes::Code byte, TRAPS) {
363     resolve_invoke(result, recv, pool, index, byte, ClassInitMode::init, THREAD);
364   }
365 
366   // runtime resolving from attached method
367   static void resolve_invoke(CallInfo& result, Handle& recv,
368                              const methodHandle& attached_method,
369                              Bytecodes::Code byte, bool check_null_and_abstract, TRAPS);
370 
371   // Only resolved method known.
372   static void throw_abstract_method_error(const methodHandle& resolved_method, TRAPS) {
373     throw_abstract_method_error(resolved_method, methodHandle(), nullptr, CHECK);
374   }
375   // Resolved method and receiver klass know.
376   static void throw_abstract_method_error(const methodHandle& resolved_method, Klass *recv_klass, TRAPS) {
377     throw_abstract_method_error(resolved_method, methodHandle(), recv_klass, CHECK);
378   }
379   // Selected method is abstract.
380   static void throw_abstract_method_error(const methodHandle& resolved_method,
381                                           const methodHandle& selected_method,
382                                           Klass *recv_klass, TRAPS);
383 };
384 #endif // SHARE_INTERPRETER_LINKRESOLVER_HPP
< prev index next >