Mercurial > hg > truffle
changeset 17685:fd07a7e4222b
8033126: Can't call default methods from JNI
Reviewed-by: dholmes, acorn, kamg
author | sla |
---|---|
date | Mon, 03 Feb 2014 15:24:20 +0100 |
parents | d1621038becf |
children | d69952503db0 |
files | src/share/vm/prims/jni.cpp |
diffstat | 1 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/prims/jni.cpp Thu Jan 23 09:06:21 2014 +0100 +++ b/src/share/vm/prims/jni.cpp Mon Feb 03 15:24:20 2014 +0100 @@ -1356,9 +1356,13 @@ // interface call KlassHandle h_holder(THREAD, holder); - int itbl_index = m->itable_index(); - Klass* k = h_recv->klass(); - selected_method = InstanceKlass::cast(k)->method_at_itable(h_holder(), itbl_index, CHECK); + if (call_type == JNI_VIRTUAL) { + int itbl_index = m->itable_index(); + Klass* k = h_recv->klass(); + selected_method = InstanceKlass::cast(k)->method_at_itable(h_holder(), itbl_index, CHECK); + } else { + selected_method = m; + } } }