576
577 // localvariable table
578 bool has_localvariable_table() const
579 { return constMethod()->has_localvariable_table(); }
580 int localvariable_table_length() const
581 { return constMethod()->localvariable_table_length(); }
582 LocalVariableTableElement* localvariable_table_start() const
583 { return constMethod()->localvariable_table_start(); }
584
585 bool has_linenumber_table() const
586 { return constMethod()->has_linenumber_table(); }
587 u_char* compressed_linenumber_table() const
588 { return constMethod()->compressed_linenumber_table(); }
589
590 // method holder (the Klass* holding this method)
591 InstanceKlass* method_holder() const { return constants()->pool_holder(); }
592
593 void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments)
594 Symbol* klass_name() const; // returns the name of the method holder
595 BasicType result_type() const; // type of the method result
596 bool is_returning_oop() const { BasicType r = result_type(); return (r == T_OBJECT || r == T_ARRAY); }
597 bool is_returning_fp() const { BasicType r = result_type(); return (r == T_FLOAT || r == T_DOUBLE); }
598
599 // Checked exceptions thrown by this method (resolved to mirrors)
600 objArrayHandle resolved_checked_exceptions(TRAPS) { return resolved_checked_exceptions_impl(this, THREAD); }
601
602 // Access flags
603 bool is_public() const { return access_flags().is_public(); }
604 bool is_private() const { return access_flags().is_private(); }
605 bool is_protected() const { return access_flags().is_protected(); }
606 bool is_package_private() const { return !is_public() && !is_private() && !is_protected(); }
607 bool is_static() const { return access_flags().is_static(); }
608 bool is_final() const { return access_flags().is_final(); }
609 bool is_synchronized() const { return access_flags().is_synchronized();}
610 bool is_native() const { return access_flags().is_native(); }
611 bool is_abstract() const { return access_flags().is_abstract(); }
612 bool is_strict() const { return access_flags().is_strict(); }
613 bool is_synthetic() const { return access_flags().is_synthetic(); }
614
615 // returns true if contains only return operation
616 bool is_empty_method() const;
|
576
577 // localvariable table
578 bool has_localvariable_table() const
579 { return constMethod()->has_localvariable_table(); }
580 int localvariable_table_length() const
581 { return constMethod()->localvariable_table_length(); }
582 LocalVariableTableElement* localvariable_table_start() const
583 { return constMethod()->localvariable_table_start(); }
584
585 bool has_linenumber_table() const
586 { return constMethod()->has_linenumber_table(); }
587 u_char* compressed_linenumber_table() const
588 { return constMethod()->compressed_linenumber_table(); }
589
590 // method holder (the Klass* holding this method)
591 InstanceKlass* method_holder() const { return constants()->pool_holder(); }
592
593 void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments)
594 Symbol* klass_name() const; // returns the name of the method holder
595 BasicType result_type() const; // type of the method result
596 bool is_returning_oop() const { BasicType r = result_type(); return is_reference_type(r); }
597 bool is_returning_fp() const { BasicType r = result_type(); return (r == T_FLOAT || r == T_DOUBLE); }
598
599 // Checked exceptions thrown by this method (resolved to mirrors)
600 objArrayHandle resolved_checked_exceptions(TRAPS) { return resolved_checked_exceptions_impl(this, THREAD); }
601
602 // Access flags
603 bool is_public() const { return access_flags().is_public(); }
604 bool is_private() const { return access_flags().is_private(); }
605 bool is_protected() const { return access_flags().is_protected(); }
606 bool is_package_private() const { return !is_public() && !is_private() && !is_protected(); }
607 bool is_static() const { return access_flags().is_static(); }
608 bool is_final() const { return access_flags().is_final(); }
609 bool is_synchronized() const { return access_flags().is_synchronized();}
610 bool is_native() const { return access_flags().is_native(); }
611 bool is_abstract() const { return access_flags().is_abstract(); }
612 bool is_strict() const { return access_flags().is_strict(); }
613 bool is_synthetic() const { return access_flags().is_synthetic(); }
614
615 // returns true if contains only return operation
616 bool is_empty_method() const;
|