src/share/vm/oops/method.hpp

Print this page




 632 #ifndef PRODUCT
 633   static ByteSize compiled_invocation_counter_offset() { return byte_offset_of(Method, _compiled_invocation_count); }
 634 #endif // not PRODUCT
 635   static ByteSize native_function_offset()       { return in_ByteSize(sizeof(Method));                 }
 636   static ByteSize from_interpreted_offset()      { return byte_offset_of(Method, _from_interpreted_entry ); }
 637   static ByteSize interpreter_entry_offset()     { return byte_offset_of(Method, _i2i_entry ); }
 638   static ByteSize signature_handler_offset()     { return in_ByteSize(sizeof(Method) + wordSize);      }
 639 
 640   // for code generation
 641   static int method_data_offset_in_bytes()       { return offset_of(Method, _method_data); }
 642   static int intrinsic_id_offset_in_bytes()      { return offset_of(Method, _intrinsic_id); }
 643   static int intrinsic_id_size_in_bytes()        { return sizeof(u1); }
 644 
 645   // Static methods that are used to implement member methods where an exposed this pointer
 646   // is needed due to possible GCs
 647   static objArrayHandle resolved_checked_exceptions_impl(Method* method, TRAPS);
 648 
 649   // Returns the byte code index from the byte code pointer
 650   int     bci_from(address bcp) const;
 651   address bcp_from(int     bci) const;
 652   int validate_bci_from_bcx(intptr_t bcx) const;

 653 
 654   // Returns the line number for a bci if debugging information for the method is prowided,
 655   // -1 is returned otherwise.
 656   int line_number_from_bci(int bci) const;
 657 
 658   // Reflection support
 659   bool is_overridden_in(Klass* k) const;
 660 
 661   // Stack walking support
 662   bool is_ignored_by_security_stack_walk() const;
 663 
 664   // JSR 292 support
 665   bool is_method_handle_intrinsic() const;          // MethodHandles::is_signature_polymorphic_intrinsic(intrinsic_id)
 666   bool is_compiled_lambda_form() const;             // intrinsic_id() == vmIntrinsics::_compiledLambdaForm
 667   bool has_member_arg() const;                      // intrinsic_id() == vmIntrinsics::_linkToSpecial, etc.
 668   static methodHandle make_method_handle_intrinsic(vmIntrinsics::ID iid, // _invokeBasic, _linkToVirtual
 669                                                    Symbol* signature, //anything at all
 670                                                    TRAPS);
 671   static Klass* check_non_bcp_klass(Klass* klass);
 672 




 632 #ifndef PRODUCT
 633   static ByteSize compiled_invocation_counter_offset() { return byte_offset_of(Method, _compiled_invocation_count); }
 634 #endif // not PRODUCT
 635   static ByteSize native_function_offset()       { return in_ByteSize(sizeof(Method));                 }
 636   static ByteSize from_interpreted_offset()      { return byte_offset_of(Method, _from_interpreted_entry ); }
 637   static ByteSize interpreter_entry_offset()     { return byte_offset_of(Method, _i2i_entry ); }
 638   static ByteSize signature_handler_offset()     { return in_ByteSize(sizeof(Method) + wordSize);      }
 639 
 640   // for code generation
 641   static int method_data_offset_in_bytes()       { return offset_of(Method, _method_data); }
 642   static int intrinsic_id_offset_in_bytes()      { return offset_of(Method, _intrinsic_id); }
 643   static int intrinsic_id_size_in_bytes()        { return sizeof(u1); }
 644 
 645   // Static methods that are used to implement member methods where an exposed this pointer
 646   // is needed due to possible GCs
 647   static objArrayHandle resolved_checked_exceptions_impl(Method* method, TRAPS);
 648 
 649   // Returns the byte code index from the byte code pointer
 650   int     bci_from(address bcp) const;
 651   address bcp_from(int     bci) const;
 652   int validate_bci_from_bcp(address bcp) const;
 653   int validate_bci(int bci) const;
 654 
 655   // Returns the line number for a bci if debugging information for the method is prowided,
 656   // -1 is returned otherwise.
 657   int line_number_from_bci(int bci) const;
 658 
 659   // Reflection support
 660   bool is_overridden_in(Klass* k) const;
 661 
 662   // Stack walking support
 663   bool is_ignored_by_security_stack_walk() const;
 664 
 665   // JSR 292 support
 666   bool is_method_handle_intrinsic() const;          // MethodHandles::is_signature_polymorphic_intrinsic(intrinsic_id)
 667   bool is_compiled_lambda_form() const;             // intrinsic_id() == vmIntrinsics::_compiledLambdaForm
 668   bool has_member_arg() const;                      // intrinsic_id() == vmIntrinsics::_linkToSpecial, etc.
 669   static methodHandle make_method_handle_intrinsic(vmIntrinsics::ID iid, // _invokeBasic, _linkToVirtual
 670                                                    Symbol* signature, //anything at all
 671                                                    TRAPS);
 672   static Klass* check_non_bcp_klass(Klass* klass);
 673