classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Proposal for changes to Classpath's JNI libraries


From: Tom Tromey
Subject: Re: Proposal for changes to Classpath's JNI libraries
Date: 03 Dec 2002 10:32:58 -0700
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

>>>>> "Stephen" == Stephen Crawley <address@hidden> writes:

Stephen> [Besides, it is not clear that it matters much to anyone
Stephen> right now.  The current releases of Classpath, GCJ and Kissme
Stephen> >>all<< have JNI function vectors that are incompatible with
Stephen> JNI 1.0.  The fact that nobody noticed until now tells me
Stephen> something about the relative importance of these things.]

Yeah.  With gcj at least, not many people use JNI.  And DefineClass is
definitely not one of the more common functions to use.  Still, the
Sable guys noticed, so somebody is using it.

Tom> Why bother with JNI at all?  If it is going to be Kissme-specific,
Tom> just put the calls directly in the code and be done with it.

Stephen> In the long term, (strict!) compliance with the JNI API spec
Stephen> is likely to be important to Kissme users.  So this is one
Stephen> reason to continue using JNI now, even though we are bending
Stephen> it a bit.

Sorry, I don't think I was clear.

You're already going to change the native code to add special
Kissme-only calls.  Why do these new calls need to go in the JNI
vector?  Why not just make direct calls?  We already know that no
other platform is going to use these new functions.

Stephen> In the JDK 1.4.0 documentation for JNI I downloaded from Sun
Stephen> a few months ago:
Stephen>     jclass DefineClass(JNIEnv *env, jobject loader, 
Stephen>                        const jbyte *buf, jsize bufLen); 

How odd.  Though I do wonder why I wrote the code the way I did in the
first place... perhaps I also saw some incorrect documentation back
then.

Stephen> But ... in the JDK 1.4.0 documentation on the Sun website (today):
Stephen>     jclass DefineClass(JNIEnv *env, const char *name, jobject loader, 
Stephen>                        const jbyte *buf, jsize bufLen);
Stephen> Something strange going on here!  Perhaps DefineClass is defined
Stephen> differently by Sun on different platforms??

I suspect the documentation you downloaded has a bug.  What does your
jni.h say?  Both the IBM and Sun 1.4 JDKs have the `name' argument.  I
didn't check earlier JDKs; I'd be interested in the results.

Tom




reply via email to

[Prev in Thread] Current Thread [Next in Thread]