< prev index next >

src/hotspot/share/oops/method.hpp

Print this page

        

*** 178,209 **** AnnotationArray* type_annotations() const { return constMethod()->type_annotations(); } // Helper routine: get klass name + "." + method name + signature as ! // C string, for the purpose of providing more useful ! // fatal error handling. The string is allocated in resource // area if a buffer is not provided by the caller. char* name_and_sig_as_C_string() const; char* name_and_sig_as_C_string(char* buf, int size) const; // Static routine in the situations we don't have a Method* static char* name_and_sig_as_C_string(Klass* klass, Symbol* method_name, Symbol* signature); static char* name_and_sig_as_C_string(Klass* klass, Symbol* method_name, Symbol* signature, char* buf, int size); - // Get return type + klass name + "." + method name + ( parameters types ) - // as a C string or print it to an outputStream. - // This is to be used to assemble strings passed to Java, so that - // the text more resembles Java code. Used in exception messages. - // Memory is allocated in the resource area; the caller needs - // a ResourceMark. - const char* external_name() const; - void print_external_name(outputStream *os) const; - - static const char* external_name( Klass* klass, Symbol* method_name, Symbol* signature); - static void print_external_name(outputStream *os, Klass* klass, Symbol* method_name, Symbol* signature); - Bytecodes::Code java_code_at(int bci) const { return Bytecodes::java_code_at(this, bcp_from(bci)); } Bytecodes::Code code_at(int bci) const { return Bytecodes::code_at(this, bcp_from(bci)); --- 178,197 ---- AnnotationArray* type_annotations() const { return constMethod()->type_annotations(); } // Helper routine: get klass name + "." + method name + signature as ! // C string, for the purpose of providing more useful NoSuchMethodErrors ! // and fatal error handling. The string is allocated in resource // area if a buffer is not provided by the caller. char* name_and_sig_as_C_string() const; char* name_and_sig_as_C_string(char* buf, int size) const; // Static routine in the situations we don't have a Method* static char* name_and_sig_as_C_string(Klass* klass, Symbol* method_name, Symbol* signature); static char* name_and_sig_as_C_string(Klass* klass, Symbol* method_name, Symbol* signature, char* buf, int size); Bytecodes::Code java_code_at(int bci) const { return Bytecodes::java_code_at(this, bcp_from(bci)); } Bytecodes::Code code_at(int bci) const { return Bytecodes::code_at(this, bcp_from(bci));
*** 461,494 **** // nmethod/verified compiler entry address verified_code_entry(); bool check_code() const; // Not inline to avoid circular ref CompiledMethod* volatile code() const; ! ! // Locks CompiledMethod_lock if not held. ! void unlink_code(CompiledMethod *compare); ! // Locks CompiledMethod_lock if not held. ! void unlink_code(); ! ! private: ! // Either called with CompiledMethod_lock held or from constructor. ! void clear_code(); ! ! public: static void set_code(const methodHandle& mh, CompiledMethod* code); void set_adapter_entry(AdapterHandlerEntry* adapter) { constMethod()->set_adapter_entry(adapter); } - void set_adapter_trampoline(AdapterHandlerEntry** trampoline) { - constMethod()->set_adapter_trampoline(trampoline); - } void update_adapter_trampoline(AdapterHandlerEntry* adapter) { constMethod()->update_adapter_trampoline(adapter); } - void set_from_compiled_entry(address entry) { - _from_compiled_entry = entry; - } address get_i2c_entry(); address get_c2i_entry(); address get_c2i_unverified_entry(); AdapterHandlerEntry* adapter() const { --- 449,466 ---- // nmethod/verified compiler entry address verified_code_entry(); bool check_code() const; // Not inline to avoid circular ref CompiledMethod* volatile code() const; ! void clear_code(bool acquire_lock = true); // Clear out any compiled code static void set_code(const methodHandle& mh, CompiledMethod* code); void set_adapter_entry(AdapterHandlerEntry* adapter) { constMethod()->set_adapter_entry(adapter); } void update_adapter_trampoline(AdapterHandlerEntry* adapter) { constMethod()->update_adapter_trampoline(adapter); } address get_i2c_entry(); address get_c2i_entry(); address get_c2i_unverified_entry(); AdapterHandlerEntry* adapter() const {
*** 525,536 **** // interpreter entry address interpreter_entry() const { return _i2i_entry; } // Only used when first initialize so we can set _i2i_entry and _from_interpreted_entry void set_interpreter_entry(address entry) { ! assert(!is_shared(), ! "shared method's interpreter entry should not be changed at run time"); if (_i2i_entry != entry) { _i2i_entry = entry; } if (_from_interpreted_entry != entry) { _from_interpreted_entry = entry; --- 497,507 ---- // interpreter entry address interpreter_entry() const { return _i2i_entry; } // Only used when first initialize so we can set _i2i_entry and _from_interpreted_entry void set_interpreter_entry(address entry) { ! assert(!is_shared(), "shared method's interpreter entry should not be changed at run time"); if (_i2i_entry != entry) { _i2i_entry = entry; } if (_from_interpreted_entry != entry) { _from_interpreted_entry = entry;
*** 634,644 **** // interface method declared with 'default' - excludes private interface methods bool is_default_method() const; // true if method needs no dynamic dispatch (final and/or no vtable entry) bool can_be_statically_bound() const; - bool can_be_statically_bound(InstanceKlass* context) const; bool can_be_statically_bound(AccessFlags class_access_flags) const; // returns true if the method has any backward branches. bool has_loops() { return access_flags().loops_flag_init() ? access_flags().has_loops() : compute_has_loops_flag(); --- 605,614 ----
< prev index next >