554 // localvariable table 555 bool has_localvariable_table() const 556 { return constMethod()->has_localvariable_table(); } 557 int localvariable_table_length() const 558 { return constMethod()->localvariable_table_length(); } 559 LocalVariableTableElement* localvariable_table_start() const 560 { return constMethod()->localvariable_table_start(); } 561 562 bool has_linenumber_table() const 563 { return constMethod()->has_linenumber_table(); } 564 u_char* compressed_linenumber_table() const 565 { return constMethod()->compressed_linenumber_table(); } 566 567 // method holder (the Klass* holding this method) 568 InstanceKlass* method_holder() const { return constants()->pool_holder(); } 569 570 void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) 571 Symbol* klass_name() const; // returns the name of the method holder 572 BasicType result_type() const; // type of the method result 573 bool is_returning_oop() const { BasicType r = result_type(); return (r == T_OBJECT || r == T_ARRAY); } 574 bool is_returning_fp() const { BasicType r = result_type(); return (r == T_FLOAT || r == T_DOUBLE); } 575 576 // Checked exceptions thrown by this method (resolved to mirrors) 577 objArrayHandle resolved_checked_exceptions(TRAPS) { return resolved_checked_exceptions_impl(this, THREAD); } 578 579 // Access flags 580 bool is_public() const { return access_flags().is_public(); } 581 bool is_private() const { return access_flags().is_private(); } 582 bool is_protected() const { return access_flags().is_protected(); } 583 bool is_package_private() const { return !is_public() && !is_private() && !is_protected(); } 584 bool is_static() const { return access_flags().is_static(); } 585 bool is_final() const { return access_flags().is_final(); } 586 bool is_synchronized() const { return access_flags().is_synchronized();} 587 bool is_native() const { return access_flags().is_native(); } 588 bool is_abstract() const { return access_flags().is_abstract(); } 589 bool is_strict() const { return access_flags().is_strict(); } 590 bool is_synthetic() const { return access_flags().is_synthetic(); } 591 592 // returns true if contains only return operation 593 bool is_empty_method() const; 594 | 554 // localvariable table 555 bool has_localvariable_table() const 556 { return constMethod()->has_localvariable_table(); } 557 int localvariable_table_length() const 558 { return constMethod()->localvariable_table_length(); } 559 LocalVariableTableElement* localvariable_table_start() const 560 { return constMethod()->localvariable_table_start(); } 561 562 bool has_linenumber_table() const 563 { return constMethod()->has_linenumber_table(); } 564 u_char* compressed_linenumber_table() const 565 { return constMethod()->compressed_linenumber_table(); } 566 567 // method holder (the Klass* holding this method) 568 InstanceKlass* method_holder() const { return constants()->pool_holder(); } 569 570 void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) 571 Symbol* klass_name() const; // returns the name of the method holder 572 BasicType result_type() const; // type of the method result 573 bool is_returning_oop() const { BasicType r = result_type(); return (r == T_OBJECT || r == T_ARRAY); } 574 bool is_returning_vt() const { BasicType r = result_type(); return r == T_VALUETYPE; } 575 bool is_returning_fp() const { BasicType r = result_type(); return (r == T_FLOAT || r == T_DOUBLE); } 576 #ifdef ASSERT 577 ValueKlass* returned_value_type(Thread* thread) const; 578 #endif 579 580 // Checked exceptions thrown by this method (resolved to mirrors) 581 objArrayHandle resolved_checked_exceptions(TRAPS) { return resolved_checked_exceptions_impl(this, THREAD); } 582 583 // Access flags 584 bool is_public() const { return access_flags().is_public(); } 585 bool is_private() const { return access_flags().is_private(); } 586 bool is_protected() const { return access_flags().is_protected(); } 587 bool is_package_private() const { return !is_public() && !is_private() && !is_protected(); } 588 bool is_static() const { return access_flags().is_static(); } 589 bool is_final() const { return access_flags().is_final(); } 590 bool is_synchronized() const { return access_flags().is_synchronized();} 591 bool is_native() const { return access_flags().is_native(); } 592 bool is_abstract() const { return access_flags().is_abstract(); } 593 bool is_strict() const { return access_flags().is_strict(); } 594 bool is_synthetic() const { return access_flags().is_synthetic(); } 595 596 // returns true if contains only return operation 597 bool is_empty_method() const; 598 |