summaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.jni/register2.c
blob: 318e4d8f4087825312e0dbbba4bdae172f5f532d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdlib.h>
#include <assert.h>
#include <jni.h>

static int
twentythree (JNIEnv *env, jclass k)
{
  return 23;
}

static int
oneninetyseven (JNIEnv *env, jclass k)
{
  return 197;
}

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, "register2$I1");
  assert (k != NULL);

  meth.name = "doit";
  meth.signature = "()I";
  meth.fnPtr = twentythree;

  r = (*env)->RegisterNatives (env, k, &meth, 1);
  assert (r == JNI_OK);

  k = (*env)->FindClass (env, "register2$I2");
  assert (k != NULL);

  meth.name = "doit";
  meth.signature = "()I";
  meth.fnPtr = oneninetyseven;

  r = (*env)->RegisterNatives (env, k, &meth, 1);
  assert (r == JNI_OK);

  return JNI_VERSION_1_2;
}