671 Symbol* signature, //anything at all 672 TRAPS); 673 static Klass* check_non_bcp_klass(Klass* klass); 674 675 // How many extra stack entries for invokedynamic when it's enabled 676 static const int extra_stack_entries_for_jsr292 = 1; 677 678 // this operates only on invoke methods: 679 // presize interpreter frames for extra interpreter stack entries, if needed 680 // Account for the extra appendix argument for invokehandle/invokedynamic 681 static int extra_stack_entries() { return extra_stack_entries_for_jsr292; } 682 static int extra_stack_words(); // = extra_stack_entries() * Interpreter::stackElementSize 683 684 // RedefineClasses() support: 685 bool is_old() const { return access_flags().is_old(); } 686 void set_is_old() { _access_flags.set_is_old(); } 687 bool is_obsolete() const { return access_flags().is_obsolete(); } 688 void set_is_obsolete() { _access_flags.set_is_obsolete(); } 689 bool is_deleted() const { return access_flags().is_deleted(); } 690 void set_is_deleted() { _access_flags.set_is_deleted(); } 691 bool on_stack() const { return access_flags().on_stack(); } 692 void set_on_stack(const bool value); 693 694 // see the definition in Method*.cpp for the gory details 695 bool should_not_be_cached() const; 696 697 // JVMTI Native method prefixing support: 698 bool is_prefixed_native() const { return access_flags().is_prefixed_native(); } 699 void set_is_prefixed_native() { _access_flags.set_is_prefixed_native(); } 700 701 // Rewriting support 702 static methodHandle clone_with_new_data(methodHandle m, u_char* new_code, int new_code_length, 703 u_char* new_compressed_linenumber_table, int new_compressed_linenumber_size, TRAPS); 704 705 // jmethodID handling 706 // Because the useful life-span of a jmethodID cannot be determined, 707 // once created they are never reclaimed. The methods to which they refer, 708 // however, can be GC'ed away if the class is unloaded or if the method is 709 // made obsolete or deleted -- in these cases, the jmethodID 710 // refers to NULL (as is the case for any weak reference). | 671 Symbol* signature, //anything at all 672 TRAPS); 673 static Klass* check_non_bcp_klass(Klass* klass); 674 675 // How many extra stack entries for invokedynamic when it's enabled 676 static const int extra_stack_entries_for_jsr292 = 1; 677 678 // this operates only on invoke methods: 679 // presize interpreter frames for extra interpreter stack entries, if needed 680 // Account for the extra appendix argument for invokehandle/invokedynamic 681 static int extra_stack_entries() { return extra_stack_entries_for_jsr292; } 682 static int extra_stack_words(); // = extra_stack_entries() * Interpreter::stackElementSize 683 684 // RedefineClasses() support: 685 bool is_old() const { return access_flags().is_old(); } 686 void set_is_old() { _access_flags.set_is_old(); } 687 bool is_obsolete() const { return access_flags().is_obsolete(); } 688 void set_is_obsolete() { _access_flags.set_is_obsolete(); } 689 bool is_deleted() const { return access_flags().is_deleted(); } 690 void set_is_deleted() { _access_flags.set_is_deleted(); } 691 692 bool is_emcp() const { 693 // emcp methods (equivalent method except constant pool is different) are methods 694 // that are old but not obsolete or deleted. 695 return is_old() && !(is_obsolete() || is_deleted()); 696 } 697 698 bool on_stack() const { return access_flags().on_stack(); } 699 void set_on_stack(const bool value); 700 701 // see the definition in Method*.cpp for the gory details 702 bool should_not_be_cached() const; 703 704 // JVMTI Native method prefixing support: 705 bool is_prefixed_native() const { return access_flags().is_prefixed_native(); } 706 void set_is_prefixed_native() { _access_flags.set_is_prefixed_native(); } 707 708 // Rewriting support 709 static methodHandle clone_with_new_data(methodHandle m, u_char* new_code, int new_code_length, 710 u_char* new_compressed_linenumber_table, int new_compressed_linenumber_size, TRAPS); 711 712 // jmethodID handling 713 // Because the useful life-span of a jmethodID cannot be determined, 714 // once created they are never reclaimed. The methods to which they refer, 715 // however, can be GC'ed away if the class is unloaded or if the method is 716 // made obsolete or deleted -- in these cases, the jmethodID 717 // refers to NULL (as is the case for any weak reference). |