< 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 >