src/share/vm/oops/methodOop.hpp

Print this page

        

*** 62,72 **** // |------------------------------------------------------| // | header | // | klass | // |------------------------------------------------------| // | constMethodOop (oop) | - // | constants (oop) | // |------------------------------------------------------| // | methodData (oop) | // | interp_invocation_count | // |------------------------------------------------------| // | access_flags | --- 62,71 ----
*** 108,118 **** class methodOopDesc : public oopDesc { friend class methodKlass; friend class VMStructs; private: constMethodOop _constMethod; // Method read-only data. - constantPoolOop _constants; // Constant pool methodDataOop _method_data; int _interpreter_invocation_count; // Count of times invoked (reused as prev_event_count in tiered) AccessFlags _access_flags; // Access flags int _vtable_index; // vtable index of this method (see VtableIndexFlag) // note: can have vtables with >2**16 elements (because of inheritance) --- 107,116 ----
*** 168,188 **** // access flag AccessFlags access_flags() const { return _access_flags; } void set_access_flags(AccessFlags flags) { _access_flags = flags; } // name ! Symbol* name() const { return _constants->symbol_at(name_index()); } int name_index() const { return constMethod()->name_index(); } void set_name_index(int index) { constMethod()->set_name_index(index); } // signature ! Symbol* signature() const { return _constants->symbol_at(signature_index()); } int signature_index() const { return constMethod()->signature_index(); } void set_signature_index(int index) { constMethod()->set_signature_index(index); } // generics support ! Symbol* generic_signature() const { int idx = generic_signature_index(); return ((idx != 0) ? _constants->symbol_at(idx) : (Symbol*)NULL); } int generic_signature_index() const { return constMethod()->generic_signature_index(); } void set_generic_signature_index(int index) { constMethod()->set_generic_signature_index(index); } // annotations support typeArrayOop annotations() const { return instanceKlass::cast(method_holder())->get_method_annotations_of(method_idnum()); } --- 166,186 ---- // access flag AccessFlags access_flags() const { return _access_flags; } void set_access_flags(AccessFlags flags) { _access_flags = flags; } // name ! Symbol* name() const { return constants()->symbol_at(name_index()); } int name_index() const { return constMethod()->name_index(); } void set_name_index(int index) { constMethod()->set_name_index(index); } // signature ! Symbol* signature() const { return constants()->symbol_at(signature_index()); } int signature_index() const { return constMethod()->signature_index(); } void set_signature_index(int index) { constMethod()->set_signature_index(index); } // generics support ! Symbol* generic_signature() const { int idx = generic_signature_index(); return ((idx != 0) ? constants()->symbol_at(idx) : (Symbol*)NULL); } int generic_signature_index() const { return constMethod()->generic_signature_index(); } void set_generic_signature_index(int index) { constMethod()->set_generic_signature_index(index); } // annotations support typeArrayOop annotations() const { return instanceKlass::cast(method_holder())->get_method_annotations_of(method_idnum()); }
*** 240,251 **** assert(0 <= size && size < (1 << 16), "invalid method size"); _method_size = size; } // constant pool for klassOop holding this method ! constantPoolOop constants() const { return _constants; } ! void set_constants(constantPoolOop c) { oop_store_without_check((oop*)&_constants, c); } // max stack int max_stack() const { return _max_stack; } void set_max_stack(int size) { _max_stack = size; } --- 238,249 ---- assert(0 <= size && size < (1 << 16), "invalid method size"); _method_size = size; } // constant pool for klassOop holding this method ! constantPoolOop constants() const { return constMethod()->constants(); } ! void set_constants(constantPoolOop c) { constMethod()->set_constants(c); } // max stack int max_stack() const { return _max_stack; } void set_max_stack(int size) { _max_stack = size; }
*** 451,461 **** { return constMethod()->has_linenumber_table(); } u_char* compressed_linenumber_table() const { return constMethod()->compressed_linenumber_table(); } // method holder (the klassOop holding this method) ! klassOop method_holder() const { return _constants->pool_holder(); } void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) Symbol* klass_name() const; // returns the name of the method holder BasicType result_type() const; // type of the method result int result_type_index() const; // type index of the method result --- 449,459 ---- { return constMethod()->has_linenumber_table(); } u_char* compressed_linenumber_table() const { return constMethod()->compressed_linenumber_table(); } // method holder (the klassOop holding this method) ! klassOop method_holder() const { return constants()->pool_holder(); } void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) Symbol* klass_name() const; // returns the name of the method holder BasicType result_type() const; // type of the method result int result_type_index() const; // type index of the method result
*** 542,552 **** bool object_is_parsable() const { return method_size() > 0; } // interpreter support static ByteSize const_offset() { return byte_offset_of(methodOopDesc, _constMethod ); } - static ByteSize constants_offset() { return byte_offset_of(methodOopDesc, _constants ); } static ByteSize access_flags_offset() { return byte_offset_of(methodOopDesc, _access_flags ); } #ifdef CC_INTERP static ByteSize result_index_offset() { return byte_offset_of(methodOopDesc, _result_index ); } #endif /* CC_INTERP */ static ByteSize size_of_locals_offset() { return byte_offset_of(methodOopDesc, _max_locals ); } --- 540,549 ----
*** 721,731 **** address* native_function_addr() const { assert(is_native(), "must be native"); return (address*) (this+1); } address* signature_handler_addr() const { return native_function_addr() + 1; } // Garbage collection support oop* adr_constMethod() const { return (oop*)&_constMethod; } - oop* adr_constants() const { return (oop*)&_constants; } oop* adr_method_data() const { return (oop*)&_method_data; } }; // Utility class for compressing line number tables --- 718,727 ----