src/share/vm/oops/constMethod.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/oops/constMethod.hpp

src/share/vm/oops/constMethod.hpp

Print this page

        

*** 119,128 **** --- 119,129 ---- u2 name_cp_index; u2 flags; }; class KlassSizeStats; + class AdapterHandlerEntry; // Class to collect the sizes of ConstMethod inline tables #define INLINE_TABLES_DO(do_element) \ do_element(localvariable_table_length) \ do_element(compressed_linenumber_size) \
*** 199,208 **** --- 200,215 ---- ConstantPool* _constants; // Constant pool // Raw stackmap data for the method Array<u1>* _stackmap_data; + // Adapter blob (i2c/c2i) for this Method*. Set once when method is linked. + union { + AdapterHandlerEntry* _adapter; + AdapterHandlerEntry** _adapter_trampoline; + }; + int _constMethod_size; u2 _flags; // Size of Java bytecodes allocated immediately after Method*. u2 _code_size;
*** 274,283 **** --- 281,313 ---- Array<u1>* stackmap_data() const { return _stackmap_data; } void set_stackmap_data(Array<u1>* sd) { _stackmap_data = sd; } void copy_stackmap_data(ClassLoaderData* loader_data, u1* sd, int length, TRAPS); bool has_stackmap_table() const { return _stackmap_data != NULL; } + // adapter + void set_adapter_entry(AdapterHandlerEntry* adapter) { + assert(!is_shared(), "shared methods have fixed adapter_trampoline"); + _adapter = adapter; + } + void set_adapter_trampoline(AdapterHandlerEntry** trampoline) { + assert(DumpSharedSpaces, "must be"); + assert(*trampoline == NULL, "must be NULL during dump time, to be initialized at run time"); + _adapter_trampoline = trampoline; + } + void update_adapter_trampoline(AdapterHandlerEntry* adapter) { + assert(is_shared(), "must be"); + *_adapter_trampoline = adapter; + assert(this->adapter() == adapter, "must be"); + } + AdapterHandlerEntry* adapter() { + if (is_shared()) { + return *_adapter_trampoline; + } else { + return _adapter; + } + } + void init_fingerprint() { const uint64_t initval = UCONST64(0x8000000000000000); _fingerprint = initval; }
src/share/vm/oops/constMethod.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File