diff options
| author | fitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-23 17:36:26 +0000 |
|---|---|---|
| committer | fitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-23 17:36:26 +0000 |
| commit | a504c2c16828e174902675d71a2cd5348f42147e (patch) | |
| tree | 9b2cca6c033589c537e103cd0b5bbf64f75f3359 /libjava/gcj | |
| parent | b82a5135037408ded1ea901f3de3e23e2eefd895 (diff) | |
| download | ppe42-gcc-a504c2c16828e174902675d71a2cd5348f42147e.tar.gz ppe42-gcc-a504c2c16828e174902675d71a2cd5348f42147e.zip | |
2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
PR libgcj/16923
* gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
JvVMOption.
2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
PR libgcj/16923
* jni.cc (JNI_CreateJavaVM): Check JNI version. Cast args to
JvVMInitArgs. Pass args to _Jv_CreateJavaVM and check return
value. Move argument parsing code to prims.cc.
* prims.cc (no_properties): Remove.
(_Jv_Compiler_Properties): Initialize to NULL.
(_Jv_Properties_Count): Initialize to 0.
(parse_verbose_args): New function.
(parse_init_args): New function.
(_Jv_CreateJavaVM): Call parse_init_args.
(_Jv_RunMain): Check return value of _Jv_CreateJavaVM.
* gcj/cni.h (JvVMOption): New struct.
(JvVMInitArgs): Likewise.
(JvCreateJavaVM): Declare vm_args as JvVMInitArgs* rather than
void*.
* libjava/gcj/javaprims.h (_Jv_VMOption): New struct.
(_Jv_VMInitArgs): Likewise.
* include/java-props.h (_Jv_Properties_Count): Declare.
* java/lang/natRuntime.cc (insertSystemProperties): Use
_Jv_Properties_Count in for loop exit condition.
* testsuite/libjava.jni/jni.exp
(gcj_invocation_compile_c_to_binary): New procedure.
(gcj_invocation_test_one): Likewise.
(gcj_jni_run): Run JNI invocation API tests.
* testsuite/libjava.jni/invocation/PR16923.c,
testsuite/libjava.jni/invocation/PR16923.java,
testsuite/libjava.jni/invocation/PR16923.out: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95459 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gcj')
| -rw-r--r-- | libjava/gcj/cni.h | 6 | ||||
| -rw-r--r-- | libjava/gcj/javaprims.h | 25 |
2 files changed, 29 insertions, 2 deletions
diff --git a/libjava/gcj/cni.h b/libjava/gcj/cni.h index ee39738d228..4aea4b6e4a7 100644 --- a/libjava/gcj/cni.h +++ b/libjava/gcj/cni.h @@ -17,6 +17,7 @@ details. */ #include <java/lang/Class.h> #include <gcj/array.h> +#include <gcj/javaprims.h> #include <string.h> @@ -113,8 +114,11 @@ JvFree (void *ptr) return _Jv_Free (ptr); } +typedef struct _Jv_VMOption JvVMOption; +typedef struct _Jv_VMInitArgs JvVMInitArgs; + extern inline jint -JvCreateJavaVM (void* vm_args) +JvCreateJavaVM (JvVMInitArgs* vm_args) { return _Jv_CreateJavaVM (vm_args); } diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h index 53c26fe1a8e..e972f7ba518 100644 --- a/libjava/gcj/javaprims.h +++ b/libjava/gcj/javaprims.h @@ -487,7 +487,30 @@ extern "C" jsize _Jv_GetStringUTFLength (jstring); extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *); extern "C" jint _Jv_hashUtf8String (char*, int); -extern jint _Jv_CreateJavaVM (void* /*vm_args*/); +struct _Jv_VMOption +{ + // a VM initialization option + char* optionString; + // extra information associated with this option + void* extraInfo; +}; + +struct _Jv_VMInitArgs +{ + // for compatibility with JavaVMInitArgs + jint version; + + // number of VM initialization options + jint nOptions; + + // an array of VM initialization options + struct _Jv_VMOption* options; + + // true if the option parser should ignore unrecognized options + jboolean ignoreUnrecognized; +}; + +extern jint _Jv_CreateJavaVM (struct _Jv_VMInitArgs*); void _Jv_ThreadRun (java::lang::Thread* thread); |

