605
606 // returns true if the method does nothing but return a constant of primitive type
607 bool is_constant_getter() const;
608
609 // returns true if the method is an initializer (<init> or <clinit>).
610 bool is_initializer() const;
611
612 // returns true if the method is static OR if the classfile version < 51
613 bool has_valid_initializer_flags() const;
614
615 // returns true if the method name is <clinit> and the method has
616 // valid static initializer flags.
617 bool is_static_initializer() const;
618
619 // compiled code support
620 // NOTE: code() is inherently racy as deopt can be clearing code
621 // simultaneously. Use with caution.
622 bool has_compiled_code() const { return code() != NULL; }
623
624 // sizing
625 static int header_size() { return sizeof(Method)/HeapWordSize; }
626 static int size(bool is_native);
627 int size() const { return method_size(); }
628 #if INCLUDE_SERVICES
629 void collect_statistics(KlassSizeStats *sz) const;
630 #endif
631 void log_touched(TRAPS);
632 static void print_touched_methods(outputStream* out);
633
634 // interpreter support
635 static ByteSize const_offset() { return byte_offset_of(Method, _constMethod ); }
636 static ByteSize access_flags_offset() { return byte_offset_of(Method, _access_flags ); }
637 #ifdef CC_INTERP
638 static ByteSize result_index_offset() { return byte_offset_of(Method, _result_index ); }
639 #endif /* CC_INTERP */
640 static ByteSize from_compiled_offset() { return byte_offset_of(Method, _from_compiled_entry); }
641 static ByteSize code_offset() { return byte_offset_of(Method, _code); }
642 static ByteSize method_data_offset() {
643 return byte_offset_of(Method, _method_data);
644 }
645 static ByteSize method_counters_offset() {
|
605
606 // returns true if the method does nothing but return a constant of primitive type
607 bool is_constant_getter() const;
608
609 // returns true if the method is an initializer (<init> or <clinit>).
610 bool is_initializer() const;
611
612 // returns true if the method is static OR if the classfile version < 51
613 bool has_valid_initializer_flags() const;
614
615 // returns true if the method name is <clinit> and the method has
616 // valid static initializer flags.
617 bool is_static_initializer() const;
618
619 // compiled code support
620 // NOTE: code() is inherently racy as deopt can be clearing code
621 // simultaneously. Use with caution.
622 bool has_compiled_code() const { return code() != NULL; }
623
624 // sizing
625 static int header_size() { return sizeof(Method)/wordSize; }
626 static int size(bool is_native);
627 int size() const { return method_size(); }
628 #if INCLUDE_SERVICES
629 void collect_statistics(KlassSizeStats *sz) const;
630 #endif
631 void log_touched(TRAPS);
632 static void print_touched_methods(outputStream* out);
633
634 // interpreter support
635 static ByteSize const_offset() { return byte_offset_of(Method, _constMethod ); }
636 static ByteSize access_flags_offset() { return byte_offset_of(Method, _access_flags ); }
637 #ifdef CC_INTERP
638 static ByteSize result_index_offset() { return byte_offset_of(Method, _result_index ); }
639 #endif /* CC_INTERP */
640 static ByteSize from_compiled_offset() { return byte_offset_of(Method, _from_compiled_entry); }
641 static ByteSize code_offset() { return byte_offset_of(Method, _code); }
642 static ByteSize method_data_offset() {
643 return byte_offset_of(Method, _method_data);
644 }
645 static ByteSize method_counters_offset() {
|