650 bool has_valid_initializer_flags() const;
651
652 // returns true if the method name is <clinit> and the method has
653 // valid static initializer flags.
654 bool is_static_initializer() const;
655
656 // returns true if the method name is <init>
657 bool is_object_initializer() const;
658
659 // compiled code support
660 // NOTE: code() is inherently racy as deopt can be clearing code
661 // simultaneously. Use with caution.
662 bool has_compiled_code() const { return code() != NULL; }
663
664 #ifdef TIERED
665 bool has_aot_code() const { return aot_code() != NULL; }
666 #endif
667
668 // sizing
669 static int header_size() {
670 return align_size_up((int)sizeof(Method), wordSize) / wordSize;
671 }
672 static int size(bool is_native);
673 int size() const { return method_size(); }
674 #if INCLUDE_SERVICES
675 void collect_statistics(KlassSizeStats *sz) const;
676 #endif
677 void log_touched(TRAPS);
678 static void print_touched_methods(outputStream* out);
679
680 // interpreter support
681 static ByteSize const_offset() { return byte_offset_of(Method, _constMethod ); }
682 static ByteSize access_flags_offset() { return byte_offset_of(Method, _access_flags ); }
683 static ByteSize from_compiled_offset() { return byte_offset_of(Method, _from_compiled_entry); }
684 static ByteSize code_offset() { return byte_offset_of(Method, _code); }
685 static ByteSize method_data_offset() {
686 return byte_offset_of(Method, _method_data);
687 }
688 static ByteSize method_counters_offset() {
689 return byte_offset_of(Method, _method_counters);
690 }
|
650 bool has_valid_initializer_flags() const;
651
652 // returns true if the method name is <clinit> and the method has
653 // valid static initializer flags.
654 bool is_static_initializer() const;
655
656 // returns true if the method name is <init>
657 bool is_object_initializer() const;
658
659 // compiled code support
660 // NOTE: code() is inherently racy as deopt can be clearing code
661 // simultaneously. Use with caution.
662 bool has_compiled_code() const { return code() != NULL; }
663
664 #ifdef TIERED
665 bool has_aot_code() const { return aot_code() != NULL; }
666 #endif
667
668 // sizing
669 static int header_size() {
670 return align_up((int)sizeof(Method), wordSize) / wordSize;
671 }
672 static int size(bool is_native);
673 int size() const { return method_size(); }
674 #if INCLUDE_SERVICES
675 void collect_statistics(KlassSizeStats *sz) const;
676 #endif
677 void log_touched(TRAPS);
678 static void print_touched_methods(outputStream* out);
679
680 // interpreter support
681 static ByteSize const_offset() { return byte_offset_of(Method, _constMethod ); }
682 static ByteSize access_flags_offset() { return byte_offset_of(Method, _access_flags ); }
683 static ByteSize from_compiled_offset() { return byte_offset_of(Method, _from_compiled_entry); }
684 static ByteSize code_offset() { return byte_offset_of(Method, _code); }
685 static ByteSize method_data_offset() {
686 return byte_offset_of(Method, _method_data);
687 }
688 static ByteSize method_counters_offset() {
689 return byte_offset_of(Method, _method_counters);
690 }
|