diff options
author | Tom Tromey <tromey@cygnus.com> | 2000-02-02 01:55:03 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2000-02-02 01:55:03 +0000 |
commit | ee6713e782d582a0fa150ed53842df0e258c028e (patch) | |
tree | 8cea920cda9b81eaa6f6464de2909e0016f6ec15 /libjava/resolve.cc | |
parent | 8928191114d5e13d4649a79dea5ca0328285fb8c (diff) | |
download | gcc-ee6713e782d582a0fa150ed53842df0e258c028e.zip gcc-ee6713e782d582a0fa150ed53842df0e258c028e.tar.gz gcc-ee6713e782d582a0fa150ed53842df0e258c028e.tar.bz2 |
java-interp.h (_Jv_JNI_conversion_call): Declare.
* include/java-interp.h (_Jv_JNI_conversion_call): Declare.
* resolve.cc (ncode): Use _Jv_JNI_conversion_call when
constructing the closure if the function is native.
* jni.cc (_Jv_JNI_conversion_call): Now returns `void'. No longer
a template function, #if'd out, or static.
Include <java-interp.h>.
From-SVN: r31746
Diffstat (limited to 'libjava/resolve.cc')
-rw-r--r-- | libjava/resolve.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libjava/resolve.cc b/libjava/resolve.cc index 92d66c2..0bf6f8c 100644 --- a/libjava/resolve.cc +++ b/libjava/resolve.cc @@ -1022,7 +1022,13 @@ _Jv_InterpMethod::ncode () args_raw_size = ffi_raw_size (&closure->cif); - if ((self->accflags & Modifier::SYNCHRONIZED) != 0) + if ((self->accflags & Modifier::NATIVE) != 0) + { + // FIXME: for now we assume that all native methods for + // interpreted code use JNI. + fun = (ffi_closure_fun) &_Jv_JNI_conversion_call; + } + else if ((self->accflags & Modifier::SYNCHRONIZED) != 0) { if (staticp) fun = (ffi_closure_fun)&_Jv_InterpMethod::run_synch_class; |