diff options
Diffstat (limited to 'libjava/testsuite/libjava.jni/register.c')
-rw-r--r-- | libjava/testsuite/libjava.jni/register.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.jni/register.c b/libjava/testsuite/libjava.jni/register.c new file mode 100644 index 000000000..049090242 --- /dev/null +++ b/libjava/testsuite/libjava.jni/register.c @@ -0,0 +1,32 @@ +#include <stdlib.h> +#include <assert.h> +#include <register.h> + +static jint +some_random_name (JNIEnv *env, jclass k, jint v) +{ + return v - 1; +} + +JNIEXPORT jint JNICALL +JNI_OnLoad (JavaVM *vm, void *nothing) +{ + JNIEnv *env; + JNINativeMethod meth; + jclass k; + jint r; + + r = (*vm)->GetEnv (vm, (void **) &env, JNI_VERSION_1_2); + assert (r == JNI_OK); + k = (*env)->FindClass (env, "register"); + assert (k != NULL); + + meth.name = "doit"; + meth.signature = "(I)I"; + meth.fnPtr = some_random_name; + + r = (*env)->RegisterNatives (env, k, &meth, 1); + assert (r == JNI_OK); + + return JNI_VERSION_1_2; +} |