< prev index next >

src/hotspot/share/interpreter/linkResolver.hpp

Print this page

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

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