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