< prev index next >
src/hotspot/share/interpreter/interpreterRuntime.cpp
Print this page
*** 1480,1498 ****
InstanceKlass* ik = InstanceKlass::cast(cp_entry->f1_as_klass());
int index = cp_entry->field_index();
if ((ik->field_access_flags(index) & JVM_ACC_FIELD_ACCESS_WATCHED) == 0) return;
bool is_static = (obj == NULL);
HandleMark hm(thread);
Handle h_obj;
if (!is_static) {
// non-static field accessors have an object, but we need a handle
h_obj = Handle(thread, obj);
}
InstanceKlass* cp_entry_f1 = InstanceKlass::cast(cp_entry->f1_as_klass());
! jfieldID fid = jfieldIDWorkaround::to_jfieldID(cp_entry_f1, cp_entry->f2_as_index(), is_static);
LastFrameAccessor last_frame(thread);
JvmtiExport::post_field_access(thread, last_frame.method(), last_frame.bcp(), cp_entry_f1, h_obj, fid);
JRT_END
JRT_ENTRY(void, InterpreterRuntime::post_field_modification(JavaThread *thread,
--- 1480,1499 ----
InstanceKlass* ik = InstanceKlass::cast(cp_entry->f1_as_klass());
int index = cp_entry->field_index();
if ((ik->field_access_flags(index) & JVM_ACC_FIELD_ACCESS_WATCHED) == 0) return;
bool is_static = (obj == NULL);
+ bool is_flattened = cp_entry->is_flattened();
HandleMark hm(thread);
Handle h_obj;
if (!is_static) {
// non-static field accessors have an object, but we need a handle
h_obj = Handle(thread, obj);
}
InstanceKlass* cp_entry_f1 = InstanceKlass::cast(cp_entry->f1_as_klass());
! jfieldID fid = jfieldIDWorkaround::to_jfieldID(cp_entry_f1, cp_entry->f2_as_index(), is_static, is_flattened);
LastFrameAccessor last_frame(thread);
JvmtiExport::post_field_access(thread, last_frame.method(), last_frame.bcp(), cp_entry_f1, h_obj, fid);
JRT_END
JRT_ENTRY(void, InterpreterRuntime::post_field_modification(JavaThread *thread,
*** 1525,1537 ****
if (cp_entry->flag_state() == atos && ik->field_signature(index)->is_Q_signature()) {
sig_type = 'Q';
}
bool is_static = (obj == NULL);
HandleMark hm(thread);
! jfieldID fid = jfieldIDWorkaround::to_jfieldID(ik, cp_entry->f2_as_index(), is_static);
jvalue fvalue;
#ifdef _LP64
fvalue = *value;
#else
// Long/double values are stored unaligned and also noncontiguously with
--- 1526,1539 ----
if (cp_entry->flag_state() == atos && ik->field_signature(index)->is_Q_signature()) {
sig_type = 'Q';
}
bool is_static = (obj == NULL);
+ bool is_flattened = cp_entry->is_flattened();
HandleMark hm(thread);
! jfieldID fid = jfieldIDWorkaround::to_jfieldID(ik, cp_entry->f2_as_index(), is_static, is_flattened);
jvalue fvalue;
#ifdef _LP64
fvalue = *value;
#else
// Long/double values are stored unaligned and also noncontiguously with
< prev index next >