I'd like to get some input on the following problem.

To obtain a JVMDI interface pointer the JVMDI spec says a JVMDI client
should invoke the Java 2 invokation interface function named "GetEnv".
I've only now realized that Kaffe doesn't do Java 2.  The JVMDI spec
gives this example:

JVMDI_Interface_1* jvmdi;
(*jvm)->GetEnv(jvm, &jvmdi, JVMDI_VERSION_1);

So, by the letter of the spec, I'm out of luck trying to implement
JVMDI until we have (at least some of) Java 2.  Or I could call
back directly into the VM as a crude, ugly AND disfunctional stopgap
measure.

So, is anyone working on Java 2?  If so, I'd like to work with them.
Otherwise, I'm thinking it seems not too bad to add GetEnv to the
invokation interface inside an "#ifdef JNI_VERSION_1_2" block.  From a
quick glance at the JNI spec it looks like the only new function in
the Java 2 version of the table is GetEnv and it's been appended to
the table.  There is also the matter of changing JNI_CreateJavaVM to
recognize "vm_args.version = 0x00010002;" and how ugly that may or may
not end up being.  How bad would it be to just return the extra table
entry regardless of vm_args.version (as long as JNI_VERSION_1_2 is
defined) until we get full Java 2?

Thanks for any help!

Reply via email to