- va_start(ap, methodID);
- b = _Jv_jni_CallIntMethod(o, o->vftbl, m, ap);
- va_end(ap);
-
- return b;
-
-}
-
-
-jbyte _Jv_JNI_CallByteMethodV(JNIEnv *env, jobject obj, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- methodinfo *m;
- jbyte b;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- b = _Jv_jni_CallIntMethod(o, o->vftbl, m, args);
-
- return b;
-}
-
-
-jbyte _Jv_JNI_CallByteMethodA(JNIEnv *env, jobject obj, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallByteMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-jchar _Jv_JNI_CallCharMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
-{
- java_objectheader *o;
- methodinfo *m;
- va_list ap;
- jchar c;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- c = _Jv_jni_CallIntMethod(o, o->vftbl, m, ap);
- va_end(ap);
-
- return c;
-}
-
-
-jchar _Jv_JNI_CallCharMethodV(JNIEnv *env, jobject obj, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- methodinfo *m;
- jchar c;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- c = _Jv_jni_CallIntMethod(o, o->vftbl, m, args);
-
- return c;
-}
-
-
-jchar _Jv_JNI_CallCharMethodA(JNIEnv *env, jobject obj, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallCharMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-jshort _Jv_JNI_CallShortMethod(JNIEnv *env, jobject obj, jmethodID methodID,
- ...)
-{
- java_objectheader *o;
- methodinfo *m;
- va_list ap;
- jshort s;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- s = _Jv_jni_CallIntMethod(o, o->vftbl, m, ap);
- va_end(ap);
-
- return s;
-}
-
-
-jshort _Jv_JNI_CallShortMethodV(JNIEnv *env, jobject obj, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- methodinfo *m;
- jshort s;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- s = _Jv_jni_CallIntMethod(o, o->vftbl, m, args);
-
- return s;
-}
-
-
-jshort _Jv_JNI_CallShortMethodA(JNIEnv *env, jobject obj, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallShortMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jint _Jv_JNI_CallIntMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
-{
- java_objectheader *o;
- methodinfo *m;
- va_list ap;
- jint i;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- i = _Jv_jni_CallIntMethod(o, o->vftbl, m, ap);
- va_end(ap);
-
- return i;
-}
-
-
-jint _Jv_JNI_CallIntMethodV(JNIEnv *env, jobject obj, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- methodinfo *m;
- jint i;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- i = _Jv_jni_CallIntMethod(o, o->vftbl, m, args);
-
- return i;
-}
-
-
-jint _Jv_JNI_CallIntMethodA(JNIEnv *env, jobject obj, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallIntMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jlong _Jv_JNI_CallLongMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
-{
- java_objectheader *o;
- methodinfo *m;
- va_list ap;
- jlong l;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- l = _Jv_jni_CallLongMethod(o, o->vftbl, m, ap);
- va_end(ap);
-
- return l;
-}
-
-
-jlong _Jv_JNI_CallLongMethodV(JNIEnv *env, jobject obj, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- methodinfo *m;
- jlong l;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- l = _Jv_jni_CallLongMethod(o, o->vftbl, m, args);
-
- return l;
-}
-
-
-jlong _Jv_JNI_CallLongMethodA(JNIEnv *env, jobject obj, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallLongMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jfloat _Jv_JNI_CallFloatMethod(JNIEnv *env, jobject obj, jmethodID methodID,
- ...)
-{
- java_objectheader *o;
- methodinfo *m;
- va_list ap;
- jfloat f;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- f = _Jv_jni_CallFloatMethod(o, o->vftbl, m, ap);
- va_end(ap);
-
- return f;
-}
-
-
-jfloat _Jv_JNI_CallFloatMethodV(JNIEnv *env, jobject obj, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- methodinfo *m;
- jfloat f;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- f = _Jv_jni_CallFloatMethod(o, o->vftbl, m, args);
-
- return f;
-}
-
-
-jfloat _Jv_JNI_CallFloatMethodA(JNIEnv *env, jobject obj, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallFloatMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jdouble _Jv_JNI_CallDoubleMethod(JNIEnv *env, jobject obj, jmethodID methodID,
- ...)
-{
- java_objectheader *o;
- methodinfo *m;
- va_list ap;
- jdouble d;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- d = _Jv_jni_CallDoubleMethod(o, o->vftbl, m, ap);
- va_end(ap);
-
- return d;
-}
-
-
-jdouble _Jv_JNI_CallDoubleMethodV(JNIEnv *env, jobject obj, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- methodinfo *m;
- jdouble d;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- d = _Jv_jni_CallDoubleMethod(o, o->vftbl, m, args);
-
- return d;
-}
-
-
-jdouble _Jv_JNI_CallDoubleMethodA(JNIEnv *env, jobject obj, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallDoubleMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-void _Jv_JNI_CallVoidMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...)
-{
- java_objectheader *o;
- methodinfo *m;
- va_list ap;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- _Jv_jni_CallVoidMethod(o, o->vftbl, m, ap);
- va_end(ap);
-}
-
-
-void _Jv_JNI_CallVoidMethodV(JNIEnv *env, jobject obj, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- methodinfo *m;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- _Jv_jni_CallVoidMethod(o, o->vftbl, m, args);
-}
-
-
-void _Jv_JNI_CallVoidMethodA(JNIEnv *env, jobject obj, jmethodID methodID,
- const jvalue *args)
-{
- java_objectheader *o;
- methodinfo *m;
-
- o = (java_objectheader *) obj;
- m = (methodinfo *) methodID;
-
- _Jv_jni_CallVoidMethodA(o, o->vftbl, m, args);
-}
-
-
-
-jobject _Jv_JNI_CallNonvirtualObjectMethod(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- java_objectheader *r;
- va_list ap;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- r = _Jv_jni_CallObjectMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return _Jv_JNI_NewLocalRef(env, (jobject) r);
-}
-
-
-jobject _Jv_JNI_CallNonvirtualObjectMethodV(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- java_objectheader *r;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- r = _Jv_jni_CallObjectMethod(o, c->vftbl, m, args);
-
- return _Jv_JNI_NewLocalRef(env, (jobject) r);
-}
-
-
-jobject _Jv_JNI_CallNonvirtualObjectMethodA(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualObjectMethodA: IMPLEMENT ME!");
-
- return _Jv_JNI_NewLocalRef(env, NULL);
-}
-
-
-
-jboolean _Jv_JNI_CallNonvirtualBooleanMethod(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
- jboolean b;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- b = _Jv_jni_CallIntMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return b;
-}
-
-
-jboolean _Jv_JNI_CallNonvirtualBooleanMethodV(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- jboolean b;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- b = _Jv_jni_CallIntMethod(o, c->vftbl, m, args);
-
- return b;
-}
-
-
-jboolean _Jv_JNI_CallNonvirtualBooleanMethodA(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualBooleanMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-jbyte _Jv_JNI_CallNonvirtualByteMethod(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
- jbyte b;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- b = _Jv_jni_CallIntMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return b;
-}
-
-
-jbyte _Jv_JNI_CallNonvirtualByteMethodV(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- jbyte b;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- b = _Jv_jni_CallIntMethod(o, c->vftbl, m, args);
-
- return b;
-}
-
-
-jbyte _Jv_JNI_CallNonvirtualByteMethodA(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualByteMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jchar _Jv_JNI_CallNonvirtualCharMethod(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
- jchar ch;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- ch = _Jv_jni_CallIntMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return ch;
-}
-
-
-jchar _Jv_JNI_CallNonvirtualCharMethodV(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- jchar ch;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- ch = _Jv_jni_CallIntMethod(o, c->vftbl, m, args);
-
- return ch;
-}
-
-
-jchar _Jv_JNI_CallNonvirtualCharMethodA(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualCharMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jshort _Jv_JNI_CallNonvirtualShortMethod(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID, ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
- jshort s;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- s = _Jv_jni_CallIntMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return s;
-}
-
-
-jshort _Jv_JNI_CallNonvirtualShortMethodV(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- jshort s;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- s = _Jv_jni_CallIntMethod(o, c->vftbl, m, args);
-
- return s;
-}
-
-
-jshort _Jv_JNI_CallNonvirtualShortMethodA(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualShortMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jint _Jv_JNI_CallNonvirtualIntMethod(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
- jint i;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- i = _Jv_jni_CallIntMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return i;
-}
-
-
-jint _Jv_JNI_CallNonvirtualIntMethodV(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- jint i;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- i = _Jv_jni_CallIntMethod(o, c->vftbl, m, args);
-
- return i;
-}
-
-
-jint _Jv_JNI_CallNonvirtualIntMethodA(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualIntMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jlong _Jv_JNI_CallNonvirtualLongMethod(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
- jlong l;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- l = _Jv_jni_CallLongMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return l;
-}
-
-
-jlong _Jv_JNI_CallNonvirtualLongMethodV(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- jlong l;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- l = _Jv_jni_CallLongMethod(o, c->vftbl, m, args);
-
- return l;
-}
-
-
-jlong _Jv_JNI_CallNonvirtualLongMethodA(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualLongMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jfloat _Jv_JNI_CallNonvirtualFloatMethod(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID, ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
- jfloat f;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- f = _Jv_jni_CallFloatMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return f;
-}
-
-
-jfloat _Jv_JNI_CallNonvirtualFloatMethodV(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- jfloat f;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- f = _Jv_jni_CallFloatMethod(o, c->vftbl, m, args);
-
- return f;
-}
-
-
-jfloat _Jv_JNI_CallNonvirtualFloatMethodA(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualFloatMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-jdouble _Jv_JNI_CallNonvirtualDoubleMethod(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
- jdouble d;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- d = _Jv_jni_CallDoubleMethod(o, c->vftbl, m, ap);
- va_end(ap);
-
- return d;
-}
-
-
-jdouble _Jv_JNI_CallNonvirtualDoubleMethodV(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- jdouble d;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- d = _Jv_jni_CallDoubleMethod(o, c->vftbl, m, args);
-
- return d;
-}
-
-
-jdouble _Jv_JNI_CallNonvirtualDoubleMethodA(JNIEnv *env, jobject obj,
- jclass clazz, jmethodID methodID,
- const jvalue *args)
-{
- log_text("JNI-Call: CallNonvirtualDoubleMethodA: IMPLEMENT ME!");
-
- return 0;
-}
-
-
-
-void _Jv_JNI_CallNonvirtualVoidMethod(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, ...)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
- va_list ap;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- _Jv_jni_CallVoidMethod(o, c->vftbl, m, ap);
- va_end(ap);
-}
-
-
-void _Jv_JNI_CallNonvirtualVoidMethodV(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, va_list args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- _Jv_jni_CallVoidMethod(o, c->vftbl, m, args);
-}
-
-
-void _Jv_JNI_CallNonvirtualVoidMethodA(JNIEnv *env, jobject obj, jclass clazz,
- jmethodID methodID, const jvalue * args)
-{
- java_objectheader *o;
- classinfo *c;
- methodinfo *m;
-
- o = (java_objectheader *) obj;
- c = (classinfo *) clazz;
- m = (methodinfo *) methodID;
-
- _Jv_jni_CallVoidMethodA(o, c->vftbl, m, args);
-}
-
-
-/* Accessing Fields of Objects ************************************************/
-
-/* GetFieldID ******************************************************************
-
- Returns the field ID for an instance (nonstatic) field of a
- class. The field is specified by its name and signature. The
- Get<type>Field and Set<type>Field families of accessor functions
- use field IDs to retrieve object fields.
-
-*******************************************************************************/
-
-jfieldID _Jv_JNI_GetFieldID(JNIEnv *env, jclass clazz, const char *name,
- const char *sig)
-{
- classinfo *c;
- fieldinfo *f;
- utf *uname;
- utf *udesc;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
-
- /* XXX NPE check? */
-
- uname = utf_new_char((char *) name);
- udesc = utf_new_char((char *) sig);
-
- f = class_findfield(c, uname, udesc);
-
- if (f == NULL)
- exceptions_throw_nosuchfielderror(c, uname);
-
- return (jfieldID) f;
-}
-
-
-/* Get<type>Field Routines *****************************************************
-
- This family of accessor routines returns the value of an instance
- (nonstatic) field of an object. The field to access is specified by
- a field ID obtained by calling GetFieldID().
-
-*******************************************************************************/
-
-jobject _Jv_JNI_GetObjectField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- java_objectheader *o;
-
- STATISTICS(jniinvokation());
-
- o = GET_FIELD(obj, java_objectheader*, fieldID);
-
- return _Jv_JNI_NewLocalRef(env, (jobject) o);
-}
-
-
-jboolean _Jv_JNI_GetBooleanField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- s4 i;
-
- STATISTICS(jniinvokation());
-
- i = GET_FIELD(obj, s4, fieldID);
-
- return (jboolean) i;
-}
-
-
-jbyte _Jv_JNI_GetByteField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- s4 i;
-
- STATISTICS(jniinvokation());
-
- i = GET_FIELD(obj, s4, fieldID);
-
- return (jbyte) i;
-}
-
-
-jchar _Jv_JNI_GetCharField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- s4 i;
-
- STATISTICS(jniinvokation());
-
- i = GET_FIELD(obj, s4, fieldID);
-
- return (jchar) i;
-}
-
-
-jshort _Jv_JNI_GetShortField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- s4 i;
-
- STATISTICS(jniinvokation());
-
- i = GET_FIELD(obj, s4, fieldID);
-
- return (jshort) i;
-}
-
-
-jint _Jv_JNI_GetIntField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- java_objectheader *o;
- fieldinfo *f;
- s4 i;
-
- STATISTICS(jniinvokation());
-
- o = (java_objectheader *) obj;
- f = (fieldinfo *) fieldID;
-
- i = GET_FIELD(o, s4, f);
-
- return i;
-}
-
-
-jlong _Jv_JNI_GetLongField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- s8 l;
-
- STATISTICS(jniinvokation());
-
- l = GET_FIELD(obj, s8, fieldID);
-
- return l;
-}
-
-
-jfloat _Jv_JNI_GetFloatField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- float f;
-
- STATISTICS(jniinvokation());
-
- f = GET_FIELD(obj, float, fieldID);
-
- return f;
-}
-
-
-jdouble _Jv_JNI_GetDoubleField(JNIEnv *env, jobject obj, jfieldID fieldID)
-{
- double d;
-
- STATISTICS(jniinvokation());
-
- d = GET_FIELD(obj, double, fieldID);
-
- return d;
-}
-
-
-/* Set<type>Field Routines *****************************************************
-
- This family of accessor routines sets the value of an instance
- (nonstatic) field of an object. The field to access is specified by
- a field ID obtained by calling GetFieldID().
-
-*******************************************************************************/
-
-void _Jv_JNI_SetObjectField(JNIEnv *env, jobject obj, jfieldID fieldID,
- jobject value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, java_objectheader*, fieldID, value);
-}
-
-
-void _Jv_JNI_SetBooleanField(JNIEnv *env, jobject obj, jfieldID fieldID,
- jboolean value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, s4, fieldID, value);
-}
-
-
-void _Jv_JNI_SetByteField(JNIEnv *env, jobject obj, jfieldID fieldID,
- jbyte value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, s4, fieldID, value);
-}
-
-
-void _Jv_JNI_SetCharField(JNIEnv *env, jobject obj, jfieldID fieldID,
- jchar value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, s4, fieldID, value);
-}
-
-
-void _Jv_JNI_SetShortField(JNIEnv *env, jobject obj, jfieldID fieldID,
- jshort value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, s4, fieldID, value);
-}
-
-
-void _Jv_JNI_SetIntField(JNIEnv *env, jobject obj, jfieldID fieldID, jint value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, s4, fieldID, value);
-}
-
-
-void _Jv_JNI_SetLongField(JNIEnv *env, jobject obj, jfieldID fieldID,
- jlong value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, s8, fieldID, value);
-}
-
-
-void _Jv_JNI_SetFloatField(JNIEnv *env, jobject obj, jfieldID fieldID,
- jfloat value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, float, fieldID, value);
-}
-
-
-void _Jv_JNI_SetDoubleField(JNIEnv *env, jobject obj, jfieldID fieldID,
- jdouble value)
-{
- STATISTICS(jniinvokation());
-
- SET_FIELD(obj, double, fieldID, value);
-}
-
-
-/* Calling Static Methods *****************************************************/
-
-/* GetStaticMethodID ***********************************************************
-
- Returns the method ID for a static method of a class. The method is
- specified by its name and signature.
-
- GetStaticMethodID() causes an uninitialized class to be
- initialized.
-
-*******************************************************************************/
-
-jmethodID _Jv_JNI_GetStaticMethodID(JNIEnv *env, jclass clazz, const char *name,
- const char *sig)
-{
- classinfo *c;
- utf *uname;
- utf *udesc;
- methodinfo *m;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
-
- if (!c)
- return NULL;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return NULL;
-
- /* try to get the static method of the class */
-
- uname = utf_new_char((char *) name);
- udesc = utf_new_char((char *) sig);
-
- m = class_resolvemethod(c, uname, udesc);
-
- if ((m == NULL) || !(m->flags & ACC_STATIC)) {
- exceptions_throw_nosuchmethoderror(c, uname, udesc);
-
- return NULL;
- }
-
- return (jmethodID) m;
-}
-
-
-jobject _Jv_JNI_CallStaticObjectMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- java_objectheader *o;
- va_list ap;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- o = _Jv_jni_CallObjectMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return _Jv_JNI_NewLocalRef(env, (jobject) o);
-}
-
-
-jobject _Jv_JNI_CallStaticObjectMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- java_objectheader *o;
-
- m = (methodinfo *) methodID;
-
- o = _Jv_jni_CallObjectMethod(NULL, NULL, m, args);
-
- return _Jv_JNI_NewLocalRef(env, (jobject) o);
-}
-
-
-jobject _Jv_JNI_CallStaticObjectMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- java_objectheader *o;
-
- m = (methodinfo *) methodID;
-
- o = _Jv_jni_CallObjectMethodA(NULL, NULL, m, args);
-
- return _Jv_JNI_NewLocalRef(env, (jobject) o);
-}
-
-
-jboolean _Jv_JNI_CallStaticBooleanMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- va_list ap;
- jboolean b;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- b = _Jv_jni_CallIntMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return b;
-}
-
-
-jboolean _Jv_JNI_CallStaticBooleanMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- jboolean b;
-
- m = (methodinfo *) methodID;
-
- b = _Jv_jni_CallIntMethod(NULL, NULL, m, args);
-
- return b;
-}
-
-
-jboolean _Jv_JNI_CallStaticBooleanMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- jboolean b;
-
- m = (methodinfo *) methodID;
-
- b = _Jv_jni_CallIntMethodA(NULL, NULL, m, args);
-
- return b;
-}
-
-
-jbyte _Jv_JNI_CallStaticByteMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- va_list ap;
- jbyte b;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- b = _Jv_jni_CallIntMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return b;
-}
-
-
-jbyte _Jv_JNI_CallStaticByteMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- jbyte b;
-
- m = (methodinfo *) methodID;
-
- b = _Jv_jni_CallIntMethod(NULL, NULL, m, args);
-
- return b;
-}
-
-
-jbyte _Jv_JNI_CallStaticByteMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- jbyte b;
-
- m = (methodinfo *) methodID;
-
- b = _Jv_jni_CallIntMethodA(NULL, NULL, m, args);
-
- return b;
-}
-
-
-jchar _Jv_JNI_CallStaticCharMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- va_list ap;
- jchar c;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- c = _Jv_jni_CallIntMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return c;
-}
-
-
-jchar _Jv_JNI_CallStaticCharMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- jchar c;
-
- m = (methodinfo *) methodID;
-
- c = _Jv_jni_CallIntMethod(NULL, NULL, m, args);
-
- return c;
-}
-
-
-jchar _Jv_JNI_CallStaticCharMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- jchar c;
-
- m = (methodinfo *) methodID;
-
- c = _Jv_jni_CallIntMethodA(NULL, NULL, m, args);
-
- return c;
-}
-
-
-jshort _Jv_JNI_CallStaticShortMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- va_list ap;
- jshort s;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- s = _Jv_jni_CallIntMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return s;
-}
-
-
-jshort _Jv_JNI_CallStaticShortMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- jshort s;
-
- m = (methodinfo *) methodID;
-
- s = _Jv_jni_CallIntMethod(NULL, NULL, m, args);
-
- return s;
-}
-
-
-jshort _Jv_JNI_CallStaticShortMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- jshort s;
-
- m = (methodinfo *) methodID;
-
- s = _Jv_jni_CallIntMethodA(NULL, NULL, m, args);
-
- return s;
-}
-
-
-jint _Jv_JNI_CallStaticIntMethod(JNIEnv *env, jclass clazz, jmethodID methodID,
- ...)
-{
- methodinfo *m;
- va_list ap;
- jint i;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- i = _Jv_jni_CallIntMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return i;
-}
-
-
-jint _Jv_JNI_CallStaticIntMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- jint i;
-
- m = (methodinfo *) methodID;
-
- i = _Jv_jni_CallIntMethod(NULL, NULL, m, args);
-
- return i;
-}
-
-
-jint _Jv_JNI_CallStaticIntMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- jint i;
-
- m = (methodinfo *) methodID;
-
- i = _Jv_jni_CallIntMethodA(NULL, NULL, m, args);
-
- return i;
-}
-
-
-jlong _Jv_JNI_CallStaticLongMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- va_list ap;
- jlong l;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- l = _Jv_jni_CallLongMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return l;
-}
-
-
-jlong _Jv_JNI_CallStaticLongMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- jlong l;
-
- m = (methodinfo *) methodID;
-
- l = _Jv_jni_CallLongMethod(NULL, NULL, m, args);
-
- return l;
-}
-
-
-jlong _Jv_JNI_CallStaticLongMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- jlong l;
-
- m = (methodinfo *) methodID;
-
- l = _Jv_jni_CallLongMethodA(NULL, NULL, m, args);
-
- return l;
-}
-
-
-
-jfloat _Jv_JNI_CallStaticFloatMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- va_list ap;
- jfloat f;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- f = _Jv_jni_CallFloatMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return f;
-}
-
-
-jfloat _Jv_JNI_CallStaticFloatMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- jfloat f;
-
- m = (methodinfo *) methodID;
-
- f = _Jv_jni_CallFloatMethod(NULL, NULL, m, args);
-
- return f;
-}
-
-
-jfloat _Jv_JNI_CallStaticFloatMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- jfloat f;
-
- m = (methodinfo *) methodID;
-
- f = _Jv_jni_CallFloatMethodA(NULL, NULL, m, args);
-
- return f;
-}
-
-
-jdouble _Jv_JNI_CallStaticDoubleMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- va_list ap;
- jdouble d;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- d = _Jv_jni_CallDoubleMethod(NULL, NULL, m, ap);
- va_end(ap);
-
- return d;
-}
-
-
-jdouble _Jv_JNI_CallStaticDoubleMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
- jdouble d;
-
- m = (methodinfo *) methodID;
-
- d = _Jv_jni_CallDoubleMethod(NULL, NULL, m, args);
-
- return d;
-}
-
-
-jdouble _Jv_JNI_CallStaticDoubleMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue *args)
-{
- methodinfo *m;
- jdouble d;
-
- m = (methodinfo *) methodID;
-
- d = _Jv_jni_CallDoubleMethodA(NULL, NULL, m, args);
-
- return d;
-}
-
-
-void _Jv_JNI_CallStaticVoidMethod(JNIEnv *env, jclass clazz,
- jmethodID methodID, ...)
-{
- methodinfo *m;
- va_list ap;
-
- m = (methodinfo *) methodID;
-
- va_start(ap, methodID);
- _Jv_jni_CallVoidMethod(NULL, NULL, m, ap);
- va_end(ap);
-}
-
-
-void _Jv_JNI_CallStaticVoidMethodV(JNIEnv *env, jclass clazz,
- jmethodID methodID, va_list args)
-{
- methodinfo *m;
-
- m = (methodinfo *) methodID;
-
- _Jv_jni_CallVoidMethod(NULL, NULL, m, args);
-}
-
-
-void _Jv_JNI_CallStaticVoidMethodA(JNIEnv *env, jclass clazz,
- jmethodID methodID, const jvalue * args)
-{
- methodinfo *m;
-
- m = (methodinfo *) methodID;
-
- _Jv_jni_CallVoidMethodA(NULL, NULL, m, args);
-}
-
-
-/* Accessing Static Fields ****************************************************/
-
-/* GetStaticFieldID ************************************************************
-
- Returns the field ID for a static field of a class. The field is
- specified by its name and signature. The GetStatic<type>Field and
- SetStatic<type>Field families of accessor functions use field IDs
- to retrieve static fields.
-
-*******************************************************************************/
-
-jfieldID _Jv_JNI_GetStaticFieldID(JNIEnv *env, jclass clazz, const char *name,
- const char *sig)
-{
- classinfo *c;
- fieldinfo *f;
- utf *uname;
- utf *usig;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
-
- uname = utf_new_char((char *) name);
- usig = utf_new_char((char *) sig);
-
- f = class_findfield(c, uname, usig);
-
- if (f == NULL)
- exceptions_throw_nosuchfielderror(c, uname);
-
- return (jfieldID) f;
-}
-
-
-/* GetStatic<type>Field ********************************************************
-
- This family of accessor routines returns the value of a static
- field of an object.
-
-*******************************************************************************/
-
-jobject _Jv_JNI_GetStaticObjectField(JNIEnv *env, jclass clazz,
- jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return NULL;
-
- return _Jv_JNI_NewLocalRef(env, f->value.a);
-}
-
-
-jboolean _Jv_JNI_GetStaticBooleanField(JNIEnv *env, jclass clazz,
- jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return false;
-
- return f->value.i;
-}
-
-
-jbyte _Jv_JNI_GetStaticByteField(JNIEnv *env, jclass clazz, jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return 0;
-
- return f->value.i;
-}
-
-
-jchar _Jv_JNI_GetStaticCharField(JNIEnv *env, jclass clazz, jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return 0;
-
- return f->value.i;
-}
-
-
-jshort _Jv_JNI_GetStaticShortField(JNIEnv *env, jclass clazz, jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return 0;
-
- return f->value.i;
-}
-
-
-jint _Jv_JNI_GetStaticIntField(JNIEnv *env, jclass clazz, jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return 0;
-
- return f->value.i;
-}
-
-
-jlong _Jv_JNI_GetStaticLongField(JNIEnv *env, jclass clazz, jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return 0;
-
- return f->value.l;
-}
-
-
-jfloat _Jv_JNI_GetStaticFloatField(JNIEnv *env, jclass clazz, jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return 0.0;
-
- return f->value.f;
-}
-
-
-jdouble _Jv_JNI_GetStaticDoubleField(JNIEnv *env, jclass clazz,
- jfieldID fieldID)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return 0.0;
-
- return f->value.d;
-}
-
-
-/* SetStatic<type>Field *******************************************************
-
- This family of accessor routines sets the value of a static field
- of an object.
-
-*******************************************************************************/
-
-void _Jv_JNI_SetStaticObjectField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jobject value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.a = value;
-}
-
-
-void _Jv_JNI_SetStaticBooleanField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jboolean value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.i = value;
-}
-
-
-void _Jv_JNI_SetStaticByteField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jbyte value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.i = value;
-}
-
-
-void _Jv_JNI_SetStaticCharField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jchar value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.i = value;
-}
-
-
-void _Jv_JNI_SetStaticShortField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jshort value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.i = value;
-}
-
-
-void _Jv_JNI_SetStaticIntField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jint value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.i = value;
-}
-
-
-void _Jv_JNI_SetStaticLongField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jlong value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.l = value;
-}
-
-
-void _Jv_JNI_SetStaticFloatField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jfloat value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.f = value;
-}
-
-
-void _Jv_JNI_SetStaticDoubleField(JNIEnv *env, jclass clazz, jfieldID fieldID,
- jdouble value)
-{
- classinfo *c;
- fieldinfo *f;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) clazz;
- f = (fieldinfo *) fieldID;
-
- if (!(c->state & CLASS_INITIALIZED))
- if (!initialize_class(c))
- return;
-
- f->value.d = value;
-}
-
-
-/* String Operations **********************************************************/
-
-/* NewString *******************************************************************
-
- Create new java.lang.String object from an array of Unicode
- characters.
-
-*******************************************************************************/
-
-jstring _Jv_JNI_NewString(JNIEnv *env, const jchar *buf, jsize len)
-{
- java_lang_String *s;
- java_chararray *a;
- u4 i;
-
- STATISTICS(jniinvokation());
-
- s = (java_lang_String *) builtin_new(class_java_lang_String);
- a = builtin_newarray_char(len);
-
- /* javastring or characterarray could not be created */
- if ((a == NULL) || (s == NULL))
- return NULL;
-
- /* copy text */
- for (i = 0; i < len; i++)
- a->data[i] = buf[i];
-
- s->value = a;
- s->offset = 0;
- s->count = len;
-
- return (jstring) _Jv_JNI_NewLocalRef(env, (jobject) s);
-}
-
-
-static jchar emptyStringJ[]={0,0};
-
-/* GetStringLength *************************************************************
-
- Returns the length (the count of Unicode characters) of a Java
- string.
-
-*******************************************************************************/
-
-jsize _Jv_JNI_GetStringLength(JNIEnv *env, jstring str)
-{
- java_lang_String *s;
-
- s = (java_lang_String *) str;
-
- return s->count;
-}
-
-
-/******************** convertes javastring to u2-array ****************************/
-
-u2 *javastring_tou2(jstring so)
-{
- java_lang_String *s;
- java_chararray *a;
- u2 *stringbuffer;
- u4 i;
-
- STATISTICS(jniinvokation());
-
- s = (java_lang_String *) so;
-
- if (!s)
- return NULL;
-
- a = s->value;
-
- if (!a)
- return NULL;
-
- /* allocate memory */
-
- stringbuffer = MNEW(u2, s->count + 1);
-
- /* copy text */
-
- for (i = 0; i < s->count; i++)
- stringbuffer[i] = a->data[s->offset + i];
-
- /* terminate string */
-
- stringbuffer[i] = '\0';
-
- return stringbuffer;
-}
-
-
-/* GetStringChars **************************************************************
-
- Returns a pointer to the array of Unicode characters of the
- string. This pointer is valid until ReleaseStringChars() is called.
-
-*******************************************************************************/
-
-const jchar *_Jv_JNI_GetStringChars(JNIEnv *env, jstring str, jboolean *isCopy)
-{
- jchar *jc;
-
- STATISTICS(jniinvokation());
-
- jc = javastring_tou2(str);
-
- if (jc) {
- if (isCopy)
- *isCopy = JNI_TRUE;
-
- return jc;
- }
-
- if (isCopy)
- *isCopy = JNI_TRUE;
-
- return emptyStringJ;
-}
-
-
-/* ReleaseStringChars **********************************************************
-
- Informs the VM that the native code no longer needs access to
- chars. The chars argument is a pointer obtained from string using
- GetStringChars().
-
-*******************************************************************************/
-
-void _Jv_JNI_ReleaseStringChars(JNIEnv *env, jstring str, const jchar *chars)
-{
- STATISTICS(jniinvokation());
-
- if (chars == emptyStringJ)
- return;
-
- MFREE(((jchar *) chars), jchar, ((java_lang_String *) str)->count + 1);
-}
-
-
-/* NewStringUTF ****************************************************************
-
- Constructs a new java.lang.String object from an array of UTF-8
- characters.
-
-*******************************************************************************/
-
-jstring _Jv_JNI_NewStringUTF(JNIEnv *env, const char *bytes)
-{
- java_lang_String *s;
-
- STATISTICS(jniinvokation());
-
- s = (java_lang_String *) javastring_safe_new_from_utf8(bytes);
-
- return (jstring) _Jv_JNI_NewLocalRef(env, (jobject) s);
-}
-
-
-/****************** returns the utf8 length in bytes of a string *******************/
-
-jsize _Jv_JNI_GetStringUTFLength(JNIEnv *env, jstring string)
-{
- java_lang_String *s;
- s4 length;
-
- STATISTICS(jniinvokation());
-
- s = (java_lang_String *) string;
-
- length = u2_utflength(s->value->data, s->count);
-
- return length;
-}
-
-
-/* GetStringUTFChars ***********************************************************
-
- Returns a pointer to an array of UTF-8 characters of the
- string. This array is valid until it is released by
- ReleaseStringUTFChars().
-
-*******************************************************************************/
-
-const char *_Jv_JNI_GetStringUTFChars(JNIEnv *env, jstring string,
- jboolean *isCopy)
-{
- utf *u;
-
- STATISTICS(jniinvokation());
-
- if (string == NULL)
- return "";
-
- if (isCopy)
- *isCopy = JNI_TRUE;
-
- u = javastring_toutf((java_objectheader *) string, false);
-
- if (u != NULL)
- return u->text;
-
- return "";
-}
-
-
-/* ReleaseStringUTFChars *******************************************************
-
- Informs the VM that the native code no longer needs access to
- utf. The utf argument is a pointer derived from string using
- GetStringUTFChars().
-
-*******************************************************************************/
-
-void _Jv_JNI_ReleaseStringUTFChars(JNIEnv *env, jstring string, const char *utf)
-{
- STATISTICS(jniinvokation());
-
- /* XXX we don't release utf chars right now, perhaps that should be done
- later. Since there is always one reference the garbage collector will
- never get them */
-}
-
-
-/* Array Operations ***********************************************************/
-
-/* GetArrayLength **************************************************************
-
- Returns the number of elements in the array.
-
-*******************************************************************************/
-
-jsize _Jv_JNI_GetArrayLength(JNIEnv *env, jarray array)
-{
- java_arrayheader *a;
-
- STATISTICS(jniinvokation());
-
- a = (java_arrayheader *) array;
-
- return a->size;
-}
-
-
-/* NewObjectArray **************************************************************
-
- Constructs a new array holding objects in class elementClass. All
- elements are initially set to initialElement.
-
-*******************************************************************************/
-
-jobjectArray _Jv_JNI_NewObjectArray(JNIEnv *env, jsize length,
- jclass elementClass, jobject initialElement)
-{
- classinfo *c;
- java_objectheader *o;
- java_objectarray *oa;
- s4 i;
-
- STATISTICS(jniinvokation());
-
- c = (classinfo *) elementClass;
- o = (java_objectheader *) initialElement;
-
- if (length < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- oa = builtin_anewarray(length, c);
-
- if (oa == NULL)
- return NULL;
-
- /* set all elements to initialElement */
-
- for (i = 0; i < length; i++)
- oa->data[i] = o;
-
- return (jobjectArray) _Jv_JNI_NewLocalRef(env, (jobject) oa);
-}
-
-
-jobject _Jv_JNI_GetObjectArrayElement(JNIEnv *env, jobjectArray array,
- jsize index)
-{
- java_objectarray *oa;
- java_objectheader *o;
-
- STATISTICS(jniinvokation());
-
- oa = (java_objectarray *) array;
-
- if (index >= oa->header.size) {
- exceptions_throw_arrayindexoutofboundsexception();
- return NULL;
- }
-
- o = oa->data[index];
-
- return _Jv_JNI_NewLocalRef(env, (jobject) o);
-}
-
-
-void _Jv_JNI_SetObjectArrayElement(JNIEnv *env, jobjectArray array,
- jsize index, jobject val)
-{
- java_objectarray *oa;
- java_objectheader *o;
-
- STATISTICS(jniinvokation());
-
- oa = (java_objectarray *) array;
- o = (java_objectheader *) val;
-
- if (index >= oa->header.size) {
- exceptions_throw_arrayindexoutofboundsexception();
- return;
- }
-
- /* check if the class of value is a subclass of the element class
- of the array */
-
- if (!builtin_canstore(oa, o))
- return;
-
- oa->data[index] = o;
-}
-
-
-jbooleanArray _Jv_JNI_NewBooleanArray(JNIEnv *env, jsize len)
-{
- java_booleanarray *ba;
-
- STATISTICS(jniinvokation());
-
- if (len < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- ba = builtin_newarray_boolean(len);
-
- return (jbooleanArray) _Jv_JNI_NewLocalRef(env, (jobject) ba);
-}
-
-
-jbyteArray _Jv_JNI_NewByteArray(JNIEnv *env, jsize len)
-{
- java_bytearray *ba;
-
- STATISTICS(jniinvokation());
-
- if (len < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- ba = builtin_newarray_byte(len);
-
- return (jbyteArray) _Jv_JNI_NewLocalRef(env, (jobject) ba);
-}
-
-
-jcharArray _Jv_JNI_NewCharArray(JNIEnv *env, jsize len)
-{
- java_chararray *ca;
-
- STATISTICS(jniinvokation());
-
- if (len < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- ca = builtin_newarray_char(len);
-
- return (jcharArray) _Jv_JNI_NewLocalRef(env, (jobject) ca);
-}
-
-
-jshortArray _Jv_JNI_NewShortArray(JNIEnv *env, jsize len)
-{
- java_shortarray *sa;
-
- STATISTICS(jniinvokation());
-
- if (len < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- sa = builtin_newarray_short(len);
-
- return (jshortArray) _Jv_JNI_NewLocalRef(env, (jobject) sa);
-}
-
-
-jintArray _Jv_JNI_NewIntArray(JNIEnv *env, jsize len)
-{
- java_intarray *ia;
-
- STATISTICS(jniinvokation());
-
- if (len < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- ia = builtin_newarray_int(len);
-
- return (jintArray) _Jv_JNI_NewLocalRef(env, (jobject) ia);
-}
-
-
-jlongArray _Jv_JNI_NewLongArray(JNIEnv *env, jsize len)
-{
- java_longarray *la;
-
- STATISTICS(jniinvokation());
-
- if (len < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- la = builtin_newarray_long(len);
-
- return (jlongArray) _Jv_JNI_NewLocalRef(env, (jobject) la);
-}
-
-
-jfloatArray _Jv_JNI_NewFloatArray(JNIEnv *env, jsize len)
-{
- java_floatarray *fa;
-
- STATISTICS(jniinvokation());
-
- if (len < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- fa = builtin_newarray_float(len);
-
- return (jfloatArray) _Jv_JNI_NewLocalRef(env, (jobject) fa);
-}
-
-
-jdoubleArray _Jv_JNI_NewDoubleArray(JNIEnv *env, jsize len)
-{
- java_doublearray *da;
-
- STATISTICS(jniinvokation());
-
- if (len < 0) {
- exceptions_throw_negativearraysizeexception();
- return NULL;
- }
-
- da = builtin_newarray_double(len);
-
- return (jdoubleArray) _Jv_JNI_NewLocalRef(env, (jobject) da);
-}
-
-
-/* Get<PrimitiveType>ArrayElements *********************************************
-
- A family of functions that returns the body of the primitive array.
-
-*******************************************************************************/
-
-jboolean *_Jv_JNI_GetBooleanArrayElements(JNIEnv *env, jbooleanArray array,
- jboolean *isCopy)
-{
- java_booleanarray *ba;
-
- STATISTICS(jniinvokation());
-
- ba = (java_booleanarray *) array;
-
- if (isCopy)
- *isCopy = JNI_FALSE;
-
- return ba->data;
-}
-
-
-jbyte *_Jv_JNI_GetByteArrayElements(JNIEnv *env, jbyteArray array,
- jboolean *isCopy)
-{
- java_bytearray *ba;
-
- STATISTICS(jniinvokation());
-
- ba = (java_bytearray *) array;
-
- if (isCopy)
- *isCopy = JNI_FALSE;
-
- return ba->data;
-}
-
-
-jchar *_Jv_JNI_GetCharArrayElements(JNIEnv *env, jcharArray array,
- jboolean *isCopy)
-{
- java_chararray *ca;
-
- STATISTICS(jniinvokation());
-
- ca = (java_chararray *) array;
-
- if (isCopy)
- *isCopy = JNI_FALSE;
-
- return ca->data;
-}