提交 7abc99b4 编写于 作者: R rbackman

4965252: JvmtiExport::post_raw_field_modification jni ref handling is odd

Reviewed-by: coleenp, sspitsyn
上级 ba8319a8
......@@ -1624,15 +1624,19 @@ void JvmtiExport::post_raw_field_modification(JavaThread *thread, Method* method
}
}
assert(sig_type != '[', "array should have sig_type == 'L'");
bool handle_created = false;
// convert oop to JNI handle.
if (sig_type == 'L' || sig_type == '[') {
if (sig_type == 'L') {
handle_created = true;
value->l = (jobject)JNIHandles::make_local(thread, (oop)value->l);
}
post_field_modification(thread, method, location, field_klass, object, field, sig_type, value);
// Destroy the JNI handle allocated above.
if (sig_type == 'L') {
if (handle_created) {
JNIHandles::destroy_local(value->l);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册