597 // localvariable table 598 bool has_localvariable_table() const 599 { return constMethod()->has_localvariable_table(); } 600 int localvariable_table_length() const 601 { return constMethod()->localvariable_table_length(); } 602 LocalVariableTableElement* localvariable_table_start() const 603 { return constMethod()->localvariable_table_start(); } 604 605 bool has_linenumber_table() const 606 { return constMethod()->has_linenumber_table(); } 607 u_char* compressed_linenumber_table() const 608 { return constMethod()->compressed_linenumber_table(); } 609 610 // method holder (the Klass* holding this method) 611 InstanceKlass* method_holder() const { return constants()->pool_holder(); } 612 613 void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) 614 Symbol* klass_name() const; // returns the name of the method holder 615 BasicType result_type() const; // type of the method result 616 bool may_return_oop() const { BasicType r = result_type(); return (r == T_OBJECT || r == T_ARRAY || r == T_VALUETYPE); } 617 #ifdef ASSERT 618 ValueKlass* returned_value_type(Thread* thread) const; 619 #endif 620 621 // Checked exceptions thrown by this method (resolved to mirrors) 622 objArrayHandle resolved_checked_exceptions(TRAPS) { return resolved_checked_exceptions_impl(this, THREAD); } 623 624 // Access flags 625 bool is_public() const { return access_flags().is_public(); } 626 bool is_private() const { return access_flags().is_private(); } 627 bool is_protected() const { return access_flags().is_protected(); } 628 bool is_package_private() const { return !is_public() && !is_private() && !is_protected(); } 629 bool is_static() const { return access_flags().is_static(); } 630 bool is_final() const { return access_flags().is_final(); } 631 bool is_synchronized() const { return access_flags().is_synchronized();} 632 bool is_native() const { return access_flags().is_native(); } 633 bool is_abstract() const { return access_flags().is_abstract(); } 634 bool is_strict() const { return access_flags().is_strict(); } 635 bool is_synthetic() const { return access_flags().is_synthetic(); } 636 637 // returns true if contains only return operation 638 bool is_empty_method() const; 639 | 597 // localvariable table 598 bool has_localvariable_table() const 599 { return constMethod()->has_localvariable_table(); } 600 int localvariable_table_length() const 601 { return constMethod()->localvariable_table_length(); } 602 LocalVariableTableElement* localvariable_table_start() const 603 { return constMethod()->localvariable_table_start(); } 604 605 bool has_linenumber_table() const 606 { return constMethod()->has_linenumber_table(); } 607 u_char* compressed_linenumber_table() const 608 { return constMethod()->compressed_linenumber_table(); } 609 610 // method holder (the Klass* holding this method) 611 InstanceKlass* method_holder() const { return constants()->pool_holder(); } 612 613 void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) 614 Symbol* klass_name() const; // returns the name of the method holder 615 BasicType result_type() const; // type of the method result 616 bool may_return_oop() const { BasicType r = result_type(); return (r == T_OBJECT || r == T_ARRAY || r == T_VALUETYPE); } 617 ValueKlass* returned_value_type(Thread* thread) const; 618 619 // Checked exceptions thrown by this method (resolved to mirrors) 620 objArrayHandle resolved_checked_exceptions(TRAPS) { return resolved_checked_exceptions_impl(this, THREAD); } 621 622 // Access flags 623 bool is_public() const { return access_flags().is_public(); } 624 bool is_private() const { return access_flags().is_private(); } 625 bool is_protected() const { return access_flags().is_protected(); } 626 bool is_package_private() const { return !is_public() && !is_private() && !is_protected(); } 627 bool is_static() const { return access_flags().is_static(); } 628 bool is_final() const { return access_flags().is_final(); } 629 bool is_synchronized() const { return access_flags().is_synchronized();} 630 bool is_native() const { return access_flags().is_native(); } 631 bool is_abstract() const { return access_flags().is_abstract(); } 632 bool is_strict() const { return access_flags().is_strict(); } 633 bool is_synthetic() const { return access_flags().is_synthetic(); } 634 635 // returns true if contains only return operation 636 bool is_empty_method() const; 637 |