[Bug java/18278] JNI functions cannot return a weak reference
tromey at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Dec 1 21:41:00 GMT 2004
------- Additional Comments From tromey at gcc dot gnu dot org 2004-12-01 21:40 -------
How curious. Apparently the JDK unwraps the return result of
a JNI method that returns a JNI weak reference.
I think it is too late to implement this for GCC 4.0 (unless the
commit rules change again). Here is how it could be fixed:
* Write a new _Jv_UnwrapJNIWeakReference function in jni.cc that is
extern "C". (This can be copied from the existing 'unwrap'
template function.)
* Make a built-in declaration for this in gcj
* Change expr.c:build_jni_stub to call this function when the return
type is not a primitive type. (there is already a comment explaining
where some unwrapping could be done)
* Also modify jni.cc:_Jv_JNIMethod::call() to do this transformation
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18278
More information about the Gcc-bugs
mailing list