mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-25 06:19:08 +08:00
38997f1bf5
2003-01-24 Ranjit Mathew <rmathew@hotmail.com> * libjava.jni/calls.c (Java_calls_docall): Define with JNIEXPORT and JNICALL method attributes. * libjava.jni/field.c (Java_field_fetch): Likewise. * libjava.jni/final_method.c (Java_final_1method_meth): Likewise. * libjava.jni/findclass.c (Java_findclass_doit): Likewise. * libjava.jni/invoke.c (Java_invoke_val): Likewise. * libjava.jni/martin.c (Java_martin_myNative): Likewise. * libjava.jni/noclass.c (Java_noclass_find_1it): Likewise. * libjava.jni/overload.c (Java_overload_over__I): Likewise. (Java_overload_over__II): Likewise. * libjava.jni/register.c (JNI_OnLoad): Likewise. * libjava.jni/simple_int.c (Java_simple_1int_nat): Likewise. * libjava.jni/throwit.c (Java_throwit_throwit): Likewise. * libjava.jni/virtual.c (Java_virtual_equals): Likewise. From-SVN: r61720
44 lines
1001 B
C
44 lines
1001 B
C
#include <jni.h>
|
|
#include "martin.h"
|
|
#include <stdio.h>
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_martin_myNative(JNIEnv* env, jobject this, jstring s)
|
|
{
|
|
jclass cls;
|
|
jfieldID fid;
|
|
jobject obj;
|
|
jmethodID mid;
|
|
|
|
printf("From C\n");
|
|
fflush(stdout);
|
|
|
|
cls = (*env)->FindClass(env, "java/lang/System");
|
|
if (cls == 0) {
|
|
printf("java/lang/System lookup failed\n");
|
|
return;
|
|
}
|
|
fid = (*env)->GetStaticFieldID(env, cls, "out", "Ljava/io/PrintStream;");
|
|
if (fid == 0) {
|
|
printf("java/lang/System::out lookup failed\n");
|
|
return;
|
|
}
|
|
obj = (*env)->GetStaticObjectField(env, cls, fid);
|
|
if (obj == 0) {
|
|
printf("GetStaticObjectField call failed\n");
|
|
return;
|
|
}
|
|
cls = (*env)->GetObjectClass(env, obj);
|
|
if (cls == 0) {
|
|
printf("GetObjectClass(out) failed\n");
|
|
return;
|
|
}
|
|
mid = (*env)->GetMethodID(env, cls, "println", "(Ljava/lang/String;)V");
|
|
if (mid == 0) {
|
|
printf("println method lookup failed\n");
|
|
return;
|
|
}
|
|
(*env)->CallVoidMethod(env, obj, mid, s);
|
|
}
|
|
|