< prev index next > src/hotspot/share/prims/jvmtiEnv.cpp
Print this page
if (err != JVMTI_ERROR_NONE) {
delete owned_monitors_list;
return err;
}
- if (java_thread != nullptr) {
- Handle thread_handle(calling_thread, thread_oop);
- EscapeBarrier eb(true, calling_thread, java_thread);
- if (!eb.deoptimize_objects(MaxJavaStackTraceDepth)) {
- delete owned_monitors_list;
- return JVMTI_ERROR_OUT_OF_MEMORY;
- }
- // get owned monitors info with handshake
- GetOwnedMonitorInfoClosure op(this, calling_thread, owned_monitors_list);
- JvmtiHandshake::execute(&op, &tlh, java_thread, thread_handle);
- err = op.result();
+ Handle thread_handle(calling_thread, thread_oop);
+ EscapeBarrier eb(java_thread != nullptr, calling_thread, java_thread);
+ if (!eb.deoptimize_objects(MaxJavaStackTraceDepth)) {
+ delete owned_monitors_list;
+ return JVMTI_ERROR_OUT_OF_MEMORY;
}
+ // get owned monitors info with handshake
+ GetOwnedMonitorInfoClosure op(this, calling_thread, owned_monitors_list);
+ JvmtiHandshake::execute(&op, &tlh, java_thread, thread_handle);
+ err = op.result();
jint owned_monitor_count = owned_monitors_list->length();
if (err == JVMTI_ERROR_NONE) {
if ((err = allocate(owned_monitor_count * sizeof(jobject *),
(unsigned char**)owned_monitors_ptr)) == JVMTI_ERROR_NONE) {
if (err != JVMTI_ERROR_NONE) {
delete owned_monitors_list;
return err;
}
- if (java_thread != nullptr) {
- Handle thread_handle(calling_thread, thread_oop);
- EscapeBarrier eb(true, calling_thread, java_thread);
- if (!eb.deoptimize_objects(MaxJavaStackTraceDepth)) {
- delete owned_monitors_list;
- return JVMTI_ERROR_OUT_OF_MEMORY;
- }
- // get owned monitors info with handshake
- GetOwnedMonitorInfoClosure op(this, calling_thread, owned_monitors_list);
- JvmtiHandshake::execute(&op, &tlh, java_thread, thread_handle);
- err = op.result();
+ Handle thread_handle(calling_thread, thread_oop);
+ EscapeBarrier eb(java_thread != nullptr, calling_thread, java_thread);
+ if (!eb.deoptimize_objects(MaxJavaStackTraceDepth)) {
+ delete owned_monitors_list;
+ return JVMTI_ERROR_OUT_OF_MEMORY;
}
+ // get owned monitors info with handshake
+ GetOwnedMonitorInfoClosure op(this, calling_thread, owned_monitors_list);
+ JvmtiHandshake::execute(&op, &tlh, java_thread, thread_handle);
+ err = op.result();
jint owned_monitor_count = owned_monitors_list->length();
if (err == JVMTI_ERROR_NONE) {
if ((err = allocate(owned_monitor_count * sizeof(jvmtiMonitorStackDepthInfo),
(unsigned char**)monitor_info_ptr)) == JVMTI_ERROR_NONE) {
< prev index next >