Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

nci/suif/suif2b/j2s/j2s_runtime/rt_jniImpl.cc File Reference

#include <stdarg.h>
#include <sys/types.h>
#include "j2s_runtime/j2s_runtime.h"

Compounds

struct  _jmethodID
union  roo

Defines

#define MID_TO_MMD(_mid)
#define FID_TO_FMD(_fid)
#define CALL_METHOD_V(x,y,z)
#define CALL_METHOD_A(x,y,z)
#define CALL_METHOD(x, y)
#define CALL_METHODS(x, y, z)
#define CALL_NONVIRTUAL_METHOD_V(x,y,z)
#define CALL_NONVIRTUAL_METHOD_A(x,y,z)
#define CALL_NONVIRTUAL_METHOD(x, y)
#define CALL_NONVIRTUAL_METHODS(x, y, z)
#define GET_FIELD(x, X)
#define SET_FIELD(x, X)
#define CALL_STATIC_METHOD_V(x,y,z)
#define CALL_STATIC_METHOD_A(x,y,z)
#define CALL_STATIC_METHOD(x, y)
#define CALL_STATIC_METHODS(x, y, z)
#define GET_STATIC_FIELD(x, X)
#define SET_STATIC_FIELD(x, X)
#define NEW_PRIMITIVE_ARRAY(x, X, y)
#define GET_ARRAY_ELEMENTS(x, X)
#define RELEASE_ARRAY_ELEMENTS(x, X)
#define GET_ARRAY_REGION(x, X)
#define SET_ARRAY_REGION(x, X)

Functions

jint jni_GetVersion (JNIEnv *)
jclass jni_DefineClass (JNIEnv *, const char *, jobject , const jbyte *, jsize )
jclass jni_FindClass (JNIEnv *, const char *name)
jclass jni_GetSuperclass (JNIEnv *, jclass sub)
jboolean jni_IsAssignableFrom (JNIEnv *, jclass sub, jclass sup)
jint jni_Throw (JNIEnv *, jthrowable obj)
jint jni_ThrowNew (JNIEnv *, jclass clazz, const char *message)
jthrowable jni_ExceptionOccurred (JNIEnv *)
void jni_ExceptionDescribe (JNIEnv *)
void jni_ExceptionClear (JNIEnv *)
void jni_FatalError (JNIEnv *, const char *msg)
jobject jni_NewGlobalRef (JNIEnv *, jobject lobj)
void jni_DeleteGlobalRef (JNIEnv *, jobject)
void jni_DeleteLocalRef (JNIEnv *, jobject)
jboolean jni_IsSameObject (JNIEnv *, jobject obj1, jobject obj2)
jobject jni_AllocObject (JNIEnv *, jclass clazz)
jobject jni_NewObjectV (JNIEnv *, jclass clazz, jmethodID methodID, va_list args)
jobject jni_NewObject (JNIEnv *env, jclass clazz, jmethodID methodID, ...)
jobject jni_NewObjectA (JNIEnv *, jclass clazz, jmethodID methodID, jvalue *args)
jclass jni_GetObjectClass (JNIEnv *, jobject obj)
jboolean jni_IsInstanceOf (JNIEnv *, jobject obj, jclass clazz)
jmethodID jni_GetMethodID (JNIEnv *, jclass clazz, const char *name, const char *sig)
 CALL_METHODS (object, Object, l) CALL_METHODS(boolean, Boolean, z) CALL_METHODS(byte, Byte, b) CALL_METHODS(char, Char, c) CALL_METHODS(short, Short, s) CALL_METHODS(int, Int, i) CALL_METHODS(long, Long, j) CALL_METHODS(float, Float, f) CALL_METHODS(double, Double, d) void jni_CallVoidMethodV (JNIEnv *, jobject obj, jmethodID methodID, va_list args)
void jni_CallVoidMethod (JNIEnv *env, jobject obj, jmethodID methodID, ...)
void jni_CallVoidMethodA (JNIEnv *, jobject obj, jmethodID methodID, jvalue * args)
 CALL_NONVIRTUAL_METHODS (object, Object, l) CALL_NONVIRTUAL_METHODS(boolean, Boolean, z) CALL_NONVIRTUAL_METHODS(byte, Byte, b) CALL_NONVIRTUAL_METHODS(char, Char, c) CALL_NONVIRTUAL_METHODS(short, Short, s) CALL_NONVIRTUAL_METHODS(int, Int, i) CALL_NONVIRTUAL_METHODS(long, Long, j) CALL_NONVIRTUAL_METHODS(float, Float, f) CALL_NONVIRTUAL_METHODS(double, Double, d) void jni_CallNonvirtualVoidMethodV (JNIEnv *, jobject obj, jclass clazz, jmethodID methodID, va_list args)
void jni_CallNonvirtualVoidMethodA (JNIEnv *, jobject obj, jclass clazz, jmethodID methodID, jvalue * args)
void jni_CallNonvirtualVoidMethod (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...)
jfieldID jni_GetFieldID (JNIEnv *, jclass clazz, const char *name, const char *sig)
 GET_FIELD (boolean, Boolean) GET_FIELD(byte, Byte) GET_FIELD(char, Char) GET_FIELD(short, Short) GET_FIELD(int, Int) GET_FIELD(float, Float) GET_FIELD(long, Long) GET_FIELD(double, Double) GET_FIELD(object, Object) #define SET_FIELD(x, X) SET_FIELD(boolean, Boolean) SET_FIELD(byte, Byte) SET_FIELD(char, Char) SET_FIELD(short, Short) SET_FIELD(int, Int) SET_FIELD(float, Float) SET_FIELD(long, Long) SET_FIELD(double, Double) void jni_SetObjectField (JNIEnv *, jobject obj, jfieldID fieldID, jobject value)
jmethodID jni_GetStaticMethodID (JNIEnv *, jclass clazz, const char *name, const char *sig)
 CALL_STATIC_METHODS (object, Object, l) CALL_STATIC_METHODS(boolean, Boolean, z) CALL_STATIC_METHODS(byte, Byte, b) CALL_STATIC_METHODS(char, Char, c) CALL_STATIC_METHODS(short, Short, s) CALL_STATIC_METHODS(int, Int, i) CALL_STATIC_METHODS(long, Long, j) CALL_STATIC_METHODS(float, Float, f) CALL_STATIC_METHODS(double, Double, d) void jni_CallStaticVoidMethodV (JNIEnv *, jclass, jmethodID methodID, va_list args)
void jni_CallStaticVoidMethodA (JNIEnv *, jclass, jmethodID methodID, jvalue * args)
void jni_CallStaticVoidMethod (JNIEnv *env, jclass clazz, jmethodID methodID, ...)
jfieldID jni_GetStaticFieldID (JNIEnv *, jclass clazz, const char *name, const char *sig)
 GET_STATIC_FIELD (boolean, Boolean) GET_STATIC_FIELD(byte, Byte) GET_STATIC_FIELD(char, Char) GET_STATIC_FIELD(short, Short) GET_STATIC_FIELD(int, Int) GET_STATIC_FIELD(float, Float) GET_STATIC_FIELD(long, Long) GET_STATIC_FIELD(double, Double) jobject jni_GetStaticObjectField (JNIEnv *, jclass, jfieldID fieldID)
 SET_STATIC_FIELD (boolean, Boolean) SET_STATIC_FIELD(byte, Byte) SET_STATIC_FIELD(char, Char) SET_STATIC_FIELD(short, Short) SET_STATIC_FIELD(int, Int) SET_STATIC_FIELD(float, Float) SET_STATIC_FIELD(long, Long) SET_STATIC_FIELD(double, Double) void jni_SetStaticObjectField (JNIEnv *, jclass, jfieldID fieldID, jobject value)
jstring jni_NewString (JNIEnv *, const jchar *unicode, jsize len)
jsize jni_GetStringLength (JNIEnv *, jstring str)
const jchar* jni_GetStringChars (JNIEnv *, jstring str, jboolean *isCopy)
void jni_ReleaseStringChars (JNIEnv *, jstring, const jchar *)
jstring jni_NewStringUTF (JNIEnv *, const char *utf)
jsize jni_GetStringUTFLength (JNIEnv *, jstring str)
const char* jni_GetStringUTFChars (JNIEnv *, jstring str, jboolean *isCopy)
void jni_ReleaseStringUTFChars (JNIEnv *, jstring, const char *)
jsize jni_GetArrayLength (JNIEnv *, jarray array)
jobjectArray jni_NewObjectArray (JNIEnv *, jsize len, jclass clazz, jobject init)
jobject jni_GetObjectArrayElement (JNIEnv *, jobjectArray array, jsize index)
void jni_SetObjectArrayElement (JNIEnv *, jobjectArray array, jsize index, jobject val)
 NEW_PRIMITIVE_ARRAY (boolean, Boolean, T_BOOLEAN) NEW_PRIMITIVE_ARRAY(byte, Byte, T_BYTE) NEW_PRIMITIVE_ARRAY(char, Char, T_CHAR) NEW_PRIMITIVE_ARRAY(short, Short, T_SHORT) NEW_PRIMITIVE_ARRAY(int, Int, T_INT) NEW_PRIMITIVE_ARRAY(float, Float, T_FLOAT) NEW_PRIMITIVE_ARRAY(long, Long, T_LONG) NEW_PRIMITIVE_ARRAY(double, Double, T_DOUBLE) #define GET_ARRAY_ELEMENTS(x, X) GET_ARRAY_ELEMENTS(boolean, Boolean) GET_ARRAY_ELEMENTS(byte, Byte) GET_ARRAY_ELEMENTS(char, Char) GET_ARRAY_ELEMENTS(short, Short) GET_ARRAY_ELEMENTS(int, Int) GET_ARRAY_ELEMENTS(float, Float) GET_ARRAY_ELEMENTS(long, Long) GET_ARRAY_ELEMENTS(double, Double) #define RELEASE_ARRAY_ELEMENTS(x, X) RELEASE_ARRAY_ELEMENTS(boolean, Boolean) RELEASE_ARRAY_ELEMENTS(byte, Byte) RELEASE_ARRAY_ELEMENTS(char, Char) RELEASE_ARRAY_ELEMENTS(short, Short) RELEASE_ARRAY_ELEMENTS(int, Int) RELEASE_ARRAY_ELEMENTS(float, Float) RELEASE_ARRAY_ELEMENTS(long, Long) RELEASE_ARRAY_ELEMENTS(double, Double) #define GET_ARRAY_REGION(x, X) GET_ARRAY_REGION(boolean, Boolean) GET_ARRAY_REGION(byte, Byte) GET_ARRAY_REGION(char, Char) GET_ARRAY_REGION(short, Short) GET_ARRAY_REGION(int, Int) GET_ARRAY_REGION(float, Float) GET_ARRAY_REGION(long, Long) GET_ARRAY_REGION(double, Double) #define SET_ARRAY_REGION(x, X) SET_ARRAY_REGION(boolean, Boolean) SET_ARRAY_REGION(byte, Byte) SET_ARRAY_REGION(char, Char) SET_ARRAY_REGION(short, Short) SET_ARRAY_REGION(int, Int) SET_ARRAY_REGION(float, Float) SET_ARRAY_REGION(long, Long) SET_ARRAY_REGION(double, Double) jint jni_RegisterNatives (JNIEnv *, jclass, const JNINativeMethod *, jint)
jint jni_UnregisterNatives (JNIEnv *, jclass)
jint jni_MonitorEnter (JNIEnv *, jobject)
jint jni_MonitorExit (JNIEnv *, jobject)
jint jni_GetJavaVM (JNIEnv *, JavaVM **)
jint JNICALL JNI_GetDefaultJavaVMInitArgs (void *)
jint JNICALL JNI_CreateJavaVM (JavaVM **, JNIEnv **, void *)
jint JNICALL JNI_GetCreatedJavaVMs (JavaVM **, jsize, jsize *)

Variables

const struct JNINativeInterface_ jniFunctions = { NULL, NULL, NULL, NULL, jni_GetVersion, jni_DefineClass, jni_FindClass, NULL, NULL, NULL, jni_GetSuperclass, jni_IsAssignableFrom, NULL, jni_Throw, jni_ThrowNew, jni_ExceptionOccurred, jni_ExceptionDescribe, jni_ExceptionClear, jni_FatalError, NULL, NULL, jni_NewGlobalRef, jni_DeleteGlobalRef, jni_DeleteLocalRef, jni_IsSameObject, NULL, NULL, jni_AllocObject, jni_NewObject, jni_NewObjectV, jni_NewObjectA, jni_GetObjectClass, jni_IsInstanceOf, jni_GetMethodID, jni_CallObjectMethod, jni_CallObjectMethodV, jni_CallObjectMethodA, jni_CallBooleanMethod, jni_CallBooleanMethodV, jni_CallBooleanMethodA, jni_CallByteMethod, jni_CallByteMethodV, jni_CallByteMethodA, jni_CallCharMethod, jni_CallCharMethodV, jni_CallCharMethodA, jni_CallShortMethod, jni_CallShortMethodV, jni_CallShortMethodA, jni_CallIntMethod, jni_CallIntMethodV, jni_CallIntMethodA, jni_CallLongMethod, jni_CallLongMethodV, jni_CallLongMethodA, jni_CallFloatMethod, jni_CallFloatMethodV, jni_CallFloatMethodA, jni_CallDoubleMethod, jni_CallDoubleMethodV, jni_CallDoubleMethodA, jni_CallVoidMethod, jni_CallVoidMethodV, jni_CallVoidMethodA, jni_CallNonvirtualObjectMethod, jni_CallNonvirtualObjectMethodV, jni_CallNonvirtualObjectMethodA, jni_CallNonvirtualBooleanMethod, jni_CallNonvirtualBooleanMethodV, jni_CallNonvirtualBooleanMethodA, jni_CallNonvirtualByteMethod, jni_CallNonvirtualByteMethodV, jni_CallNonvirtualByteMethodA, jni_CallNonvirtualCharMethod, jni_CallNonvirtualCharMethodV, jni_CallNonvirtualCharMethodA, jni_CallNonvirtualShortMethod, jni_CallNonvirtualShortMethodV, jni_CallNonvirtualShortMethodA, jni_CallNonvirtualIntMethod, jni_CallNonvirtualIntMethodV, jni_CallNonvirtualIntMethodA, jni_CallNonvirtualLongMethod, jni_CallNonvirtualLongMethodV, jni_CallNonvirtualLongMethodA, jni_CallNonvirtualFloatMethod, jni_CallNonvirtualFloatMethodV, jni_CallNonvirtualFloatMethodA, jni_CallNonvirtualDoubleMethod, jni_CallNonvirtualDoubleMethodV, jni_CallNonvirtualDoubleMethodA, jni_CallNonvirtualVoidMethod, jni_CallNonvirtualVoidMethodV, jni_CallNonvirtualVoidMethodA, jni_GetFieldID, jni_GetObjectField, jni_GetBooleanField, jni_GetByteField, jni_GetCharField, jni_GetShortField, jni_GetIntField, jni_GetLongField, jni_GetFloatField, jni_GetDoubleField, jni_SetObjectField, jni_SetBooleanField, jni_SetByteField, jni_SetCharField, jni_SetShortField, jni_SetIntField, jni_SetLongField, jni_SetFloatField, jni_SetDoubleField, jni_GetStaticMethodID, jni_CallStaticObjectMethod, jni_CallStaticObjectMethodV, jni_CallStaticObjectMethodA, jni_CallStaticBooleanMethod, jni_CallStaticBooleanMethodV, jni_CallStaticBooleanMethodA, jni_CallStaticByteMethod, jni_CallStaticByteMethodV, jni_CallStaticByteMethodA, jni_CallStaticCharMethod, jni_CallStaticCharMethodV, jni_CallStaticCharMethodA, jni_CallStaticShortMethod, jni_CallStaticShortMethodV, jni_CallStaticShortMethodA, jni_CallStaticIntMethod, jni_CallStaticIntMethodV, jni_CallStaticIntMethodA, jni_CallStaticLongMethod, jni_CallStaticLongMethodV, jni_CallStaticLongMethodA, jni_CallStaticFloatMethod, jni_CallStaticFloatMethodV, jni_CallStaticFloatMethodA, jni_CallStaticDoubleMethod, jni_CallStaticDoubleMethodV, jni_CallStaticDoubleMethodA, jni_CallStaticVoidMethod, jni_CallStaticVoidMethodV, jni_CallStaticVoidMethodA, jni_GetStaticFieldID, jni_GetStaticObjectField, jni_GetStaticBooleanField, jni_GetStaticByteField, jni_GetStaticCharField, jni_GetStaticShortField, jni_GetStaticIntField, jni_GetStaticLongField, jni_GetStaticFloatField, jni_GetStaticDoubleField, jni_SetStaticObjectField, jni_SetStaticBooleanField, jni_SetStaticByteField, jni_SetStaticCharField, jni_SetStaticShortField, jni_SetStaticIntField, jni_SetStaticLongField, jni_SetStaticFloatField, jni_SetStaticDoubleField, jni_NewString, jni_GetStringLength, jni_GetStringChars, jni_ReleaseStringChars, jni_NewStringUTF, jni_GetStringUTFLength, jni_GetStringUTFChars, jni_ReleaseStringUTFChars, jni_GetArrayLength, jni_NewObjectArray, jni_GetObjectArrayElement, jni_SetObjectArrayElement, jni_NewBooleanArray, jni_NewByteArray, jni_NewCharArray, jni_NewShortArray, jni_NewIntArray, jni_NewLongArray, jni_NewFloatArray, jni_NewDoubleArray, jni_GetBooleanArrayElements, /* GetBooleanArrayElements */ jni_GetByteArrayElements, jni_GetCharArrayElements, jni_GetShortArrayElements, jni_GetIntArrayElements, jni_GetLongArrayElements, jni_GetFloatArrayElements, jni_GetDoubleArrayElements, jni_ReleaseBooleanArrayElements, /* ReleaseBooleanArrayElements */ jni_ReleaseByteArrayElements, jni_ReleaseCharArrayElements, jni_ReleaseShortArrayElements, jni_ReleaseIntArrayElements, jni_ReleaseLongArrayElements, jni_ReleaseFloatArrayElements, jni_ReleaseDoubleArrayElements, jni_GetBooleanArrayRegion, /* GetBooleanArrayRegion */ jni_GetByteArrayRegion, jni_GetCharArrayRegion, jni_GetShortArrayRegion, jni_GetIntArrayRegion, jni_GetLongArrayRegion, jni_GetFloatArrayRegion, jni_GetDoubleArrayRegion, jni_SetBooleanArrayRegion, /* SetBooleanArrayRegion */ jni_SetByteArrayRegion, jni_SetCharArrayRegion, jni_SetShortArrayRegion, jni_SetIntArrayRegion, jni_SetLongArrayRegion, jni_SetFloatArrayRegion, jni_SetDoubleArrayRegion, jni_RegisterNatives, jni_UnregisterNatives, jni_MonitorEnter, jni_MonitorExit, jni_GetJavaVM, }

Define Documentation

#define CALL_METHOD( x,
y)

Initial value:

\
j##x jni_Call##y##Method (JNIEnv *env, jobject obj, jmethodID methodID, ...)\
{\
  va_list args;\
  va_start(args, methodID);\
  j##x result = jni_Call##y##MethodV(env, obj, methodID, args);\
  va_end(args);\
  return result;\
}

#define CALL_METHODS( x,
y,
z)

Initial value:

\
CALL_METHOD_V(x, y, z)\
CALL_METHOD_A(x, y, z)\
CALL_METHOD(x, y)

#define CALL_METHOD_A( x,
y,
z)

Initial value:

\
j##x jni_Call##y##MethodA (JNIEnv *, jobject obj, jmethodID methodID,\
                           jvalue * args)\
{\
  JObject *_obj = unhOBJECT(obj);\
  MID_TO_MMD(methodID);\
  JValue v = mmd->CallArgsA(_obj, args, _obj->vtbl(mmd->vtblOffset));\
  return (j##x) v.##z;\
}

#define CALL_METHOD_V( x,
y,
z)

Initial value:

\
j##x jni_Call##y##MethodV (JNIEnv *, jobject obj, jmethodID methodID,\
                           va_list args)\
{\
  JObject *_obj = unhOBJECT(obj);\
  MID_TO_MMD(methodID);\
  JValue v = mmd->CallArgsV(_obj, args, _obj->vtbl(mmd->vtblOffset));\
  return (j##x) v.##z;\
}

#define CALL_NONVIRTUAL_METHOD( x,
y)

Initial value:

\
j##x jni_CallNonvirtual##y##Method (JNIEnv *env, jobject obj, jclass clazz,\
                                    jmethodID methodID, ...)\
{\
  va_list args;\
  va_start(args, methodID);\
  j##x result = jni_CallNonvirtual##y##MethodV(env, obj, clazz, methodID, args);\
  va_end(args);\
  return result;\
}

#define CALL_NONVIRTUAL_METHODS( x,
y,
z)

Initial value:

\
CALL_NONVIRTUAL_METHOD_V(x, y, z)\
CALL_NONVIRTUAL_METHOD_A(x, y, z)\
CALL_NONVIRTUAL_METHOD(x, y)

#define CALL_NONVIRTUAL_METHOD_A( x,
y,
z)

Initial value:

\
j##x jni_CallNonvirtual##y##MethodA (JNIEnv *, jobject obj, jclass clazz,\
                                     jmethodID methodID, jvalue * args)\
{\
  JObject *_obj = unhOBJECT(obj);\
  JClass *_clazz = unhCLASS(clazz);\
\
  MID_TO_MMD(methodID);\
  JValue v = mmd->CallArgsA(_obj, args, _clazz->vtbl(mmd->vtblOffset));\
  return (j##x) v.##z;\
}

#define CALL_NONVIRTUAL_METHOD_V( x,
y,
z)

Initial value:

\
j##x jni_CallNonvirtual##y##MethodV (JNIEnv *, jobject obj, jclass clazz,\
                                     jmethodID methodID, va_list args)\
{\
  JObject *_obj = unhOBJECT(obj);\
  JClass *_clazz = unhCLASS(clazz);\
\
  MID_TO_MMD(methodID);\
  JValue v = mmd->CallArgsV(_obj, args, _clazz->vtbl(mmd->vtblOffset));\
  return (j##x) v.##z;\
}

#define CALL_STATIC_METHOD( x,
y)

Initial value:

\
j##x jni_CallStatic##y##Method (JNIEnv *env, jclass clazz,\
                                jmethodID methodID, ...)\
{\
    \
  va_list args;\
  va_start(args, methodID);\
  j##x result = jni_CallStatic##y##MethodV(env, clazz, methodID, args);\
  va_end(args);\
  return result;\
}

#define CALL_STATIC_METHODS( x,
y,
z)

Initial value:

\
CALL_STATIC_METHOD_V(x, y, z)\
CALL_STATIC_METHOD_A(x, y, z)\
CALL_STATIC_METHOD(x, y)

#define CALL_STATIC_METHOD_A( x,
y,
z)

Initial value:

\
j##x jni_CallStatic##y##MethodA (JNIEnv *, jclass,\
                                 jmethodID methodID,\
                                 jvalue * args)\
{\
  MID_TO_MMD(methodID);\
  JValue v = mmd->CallArgsA(NULL, args, mmd->fnPtr);\
  return (j##x) v.##z;\
}

#define CALL_STATIC_METHOD_V( x,
y,
z)

Initial value:

\
j##x jni_CallStatic##y##MethodV (JNIEnv *, jclass,\
                                 jmethodID methodID,\
                                 va_list args)\
{\
  MID_TO_MMD(methodID);\
  JValue v = mmd->CallArgsV(NULL, args, mmd->fnPtr);\
  return (j##x) v.##z;\
}

#define FID_TO_FMD( _fid)

Initial value:

\
  uRTfieldID fid;\
  fid.jni = _fid;\
  FieldMetadata *fmd = JClass::toClass(fid.rts.classID)->\
                      fieldMetadata(fid.rts.fieldID)

#define GET_ARRAY_ELEMENTS( x,
X)

Initial value:

\
j##x * jni_Get##X##ArrayElements (JNIEnv *, j##x##Array array,\
                                  jboolean *isCopy)\
{\
  ASSERT(sizeof(j##x) == sizeof(aJ##X));\
  if(isCopy != NULL) *isCopy = JNI_FALSE;\
  return (j##x *) unhARRAY(array)->tryToAddress(0);\
}

#define GET_ARRAY_REGION( x,
X)

Initial value:

\
void jni_Get##X##ArrayRegion (JNIEnv *, j##x##Array array,\
                              jsize start, jsize l, j##x *buf)\
{\
  dbg_imp();\
  JArray *_array = unhARRAY(array);\
\
  if((start < 0) ||\
     (l < 0) ||\
     ((start + l) > _array->length()))\
    THROW(JArrayIndexOutOfBoundsException);\
\
  aJ##X *src = (aJ##X *) _array->tryToAddress(start);\
  j##x  *dst = buf;\
\
  for(int i = 0; i < l; i++) {\
    *dst++ = (j##x) *src++;\
  }\
}

#define GET_FIELD( x,
X)

Initial value:

\
j##x jni_Get##X##Field (JNIEnv *, jobject obj, jfieldID fieldID)\
{\
  JObject *_obj = unhOBJECT(obj);\
  FID_TO_FMD(fieldID);\
  return (j##x) ::get##X##Field(_obj, fmd->offset);\
}

#define GET_STATIC_FIELD( x,
X)

Initial value:

\
j##x jni_GetStatic##X##Field (JNIEnv *, jclass, jfieldID fieldID)\
{\
  FID_TO_FMD(fieldID);\
  return (j##x) ::get##X##StaticField(fmd->address);\
}

#define MID_TO_MMD( _mid)

Initial value:

\
  uRTmethodID mid;\
  mid.jni = _mid;\
  MethodMetadata *mmd = JCLASS(JClass::toClass(mid.rts.classID))->\
  methodMetadata(mid.rts.methodID)

#define NEW_PRIMITIVE_ARRAY( x,
X,
y)

Initial value:

\
j##x##Array jni_New##X##Array (JNIEnv *, jsize len)\
{\
  return (j##x##Array) hARRAY(JClass::primitives[y]->\
          buildPrimitiveArray(y, len));\
}

#define RELEASE_ARRAY_ELEMENTS( x,
X)

Initial value:

\
void jni_Release##X##ArrayElements (JNIEnv *, j##x##Array,\
                                    j##x *, jint)\
{  }

#define SET_ARRAY_REGION( x,
X)

Initial value:

\
void jni_Set##X##ArrayRegion (JNIEnv *, j##x##Array array,\
                              jsize start, jsize l, j##x *buf)\
{\
  dbg_imp();\
  JArray *_array = unhARRAY(array);\
\
  if((start < 0) ||\
     (l < 0) ||\
     ((start + l) > _array->length()))\
    THROW(JArrayIndexOutOfBoundsException);\
\
  aJ##X *dst = (aJ##X *) _array->tryToAddress(start);\
  j##x  *src = buf;\
\
  for(int i = 0; i < l; i++) {\
    *dst++ = (aJ##X) *src++;\
  }\
}

#define SET_FIELD( x,
X)

Initial value:

\
void jni_Set##X##Field (JNIEnv *, jobject obj, jfieldID fieldID,\
                        j##x value)\
{\
  JObject *_obj = unhOBJECT(obj);\
  FID_TO_FMD(fieldID);\
  ::set##X##Field(_obj, fmd->offset, (J##X) value);\
}

#define SET_STATIC_FIELD( x,
X)

Initial value:

\
void jni_SetStatic##X##Field (JNIEnv *, jclass,\
                              jfieldID fieldID, j##x value)\
{\
  FID_TO_FMD(fieldID);\
  ::set##X##StaticField((J##X) value, fmd->address);\
}

Function Documentation

CALL_METHODS ( object,
Object,
l)

CALL_NONVIRTUAL_METHODS ( object,
Object,
l)

CALL_STATIC_METHODS ( object,
Object,
l)

GET_FIELD ( boolean,
Boolean)

GET_STATIC_FIELD ( boolean,
Boolean)

jint JNICALL JNI_CreateJavaVM ( JavaVM **,
JNIEnv **,
void *)

jint JNICALL JNI_GetCreatedJavaVMs ( JavaVM **,
jsize,
jsize *)

jint JNICALL JNI_GetDefaultJavaVMInitArgs ( void *)

NEW_PRIMITIVE_ARRAY ( boolean,
Boolean,
T_BOOLEAN) const

SET_STATIC_FIELD ( boolean,
Boolean)

jobject jni_AllocObject ( JNIEnv *,
jclass clazz)

void jni_CallNonvirtualVoidMethod ( JNIEnv * env,
jobject obj,
jclass clazz,
jmethodID methodID,
...)

void jni_CallNonvirtualVoidMethodA ( JNIEnv *,
jobject obj,
jclass clazz,
jmethodID methodID,
jvalue * args)

void jni_CallStaticVoidMethod ( JNIEnv * env,
jclass clazz,
jmethodID methodID,
...)

void jni_CallStaticVoidMethodA ( JNIEnv *,
jclass,
jmethodID methodID,
jvalue * args)

void jni_CallVoidMethod ( JNIEnv * env,
jobject obj,
jmethodID methodID,
...)

void jni_CallVoidMethodA ( JNIEnv *,
jobject obj,
jmethodID methodID,
jvalue * args)

jclass jni_DefineClass ( JNIEnv *,
const char *,
jobject,
const jbyte *,
jsize)

void jni_DeleteGlobalRef ( JNIEnv *,
jobject)

void jni_DeleteLocalRef ( JNIEnv *,
jobject)

void jni_ExceptionClear ( JNIEnv *)

void jni_ExceptionDescribe ( JNIEnv *)

jthrowable jni_ExceptionOccurred ( JNIEnv *)

void jni_FatalError ( JNIEnv *,
const char * msg)

jclass jni_FindClass ( JNIEnv *,
const char * name)

jsize jni_GetArrayLength ( JNIEnv *,
jarray array)

jfieldID jni_GetFieldID ( JNIEnv * env,
jclass clazz,
const char * name,
const char * sig)

jint jni_GetJavaVM ( JNIEnv *,
JavaVM **)

jmethodID jni_GetMethodID ( JNIEnv * env,
jclass clazz,
const char * name,
const char * sig)

jobject jni_GetObjectArrayElement ( JNIEnv *,
jobjectArray array,
jsize index)

jclass jni_GetObjectClass ( JNIEnv *,
jobject obj)

jfieldID jni_GetStaticFieldID ( JNIEnv *,
jclass clazz,
const char * name,
const char * sig)

jmethodID jni_GetStaticMethodID ( JNIEnv *,
jclass clazz,
const char * name,
const char * sig)

const jchar * jni_GetStringChars ( JNIEnv *,
jstring str,
jboolean * isCopy)

jsize jni_GetStringLength ( JNIEnv *,
jstring str)

const char * jni_GetStringUTFChars ( JNIEnv *,
jstring str,
jboolean * isCopy)

jsize jni_GetStringUTFLength ( JNIEnv *,
jstring str)

jclass jni_GetSuperclass ( JNIEnv *,
jclass sub)

jint jni_GetVersion ( JNIEnv *)

jboolean jni_IsAssignableFrom ( JNIEnv *,
jclass sub,
jclass sup)

jboolean jni_IsInstanceOf ( JNIEnv *,
jobject obj,
jclass clazz)

jboolean jni_IsSameObject ( JNIEnv *,
jobject obj1,
jobject obj2)

jint jni_MonitorEnter ( JNIEnv *,
jobject)

jint jni_MonitorExit ( JNIEnv *,
jobject)

jobject jni_NewGlobalRef ( JNIEnv *,
jobject lobj)

jobject jni_NewObject ( JNIEnv * env,
jclass clazz,
jmethodID methodID,
...)

jobject jni_NewObjectA ( JNIEnv *,
jclass clazz,
jmethodID methodID,
jvalue * args)

jobjectArray jni_NewObjectArray ( JNIEnv *,
jsize len,
jclass clazz,
jobject init)

jobject jni_NewObjectV ( JNIEnv *,
jclass clazz,
jmethodID methodID,
va_list args)

jstring jni_NewString ( JNIEnv *,
const jchar * unicode,
jsize len)

jstring jni_NewStringUTF ( JNIEnv *,
const char * utf)

void jni_ReleaseStringChars ( JNIEnv *,
jstring,
const jchar *)

void jni_ReleaseStringUTFChars ( JNIEnv *,
jstring,
const char *)

void jni_SetObjectArrayElement ( JNIEnv *,
jobjectArray array,
jsize index,
jobject val)

jint jni_Throw ( JNIEnv *,
jthrowable obj)

jint jni_ThrowNew ( JNIEnv *,
jclass clazz,
const char * message)

jint jni_UnregisterNatives ( JNIEnv *,
jclass)


Variable Documentation

const struct JNINativeInterface_ jniFunctions = { NULL, NULL, NULL, NULL, jni_GetVersion, jni_DefineClass, jni_FindClass, NULL, NULL, NULL, jni_GetSuperclass, jni_IsAssignableFrom, NULL, jni_Throw, jni_ThrowNew, jni_ExceptionOccurred, jni_ExceptionDescribe, jni_ExceptionClear, jni_FatalError, NULL, NULL, jni_NewGlobalRef, jni_DeleteGlobalRef, jni_DeleteLocalRef, jni_IsSameObject, NULL, NULL, jni_AllocObject, jni_NewObject, jni_NewObjectV, jni_NewObjectA, jni_GetObjectClass, jni_IsInstanceOf, jni_GetMethodID, jni_CallObjectMethod, jni_CallObjectMethodV, jni_CallObjectMethodA, jni_CallBooleanMethod, jni_CallBooleanMethodV, jni_CallBooleanMethodA, jni_CallByteMethod, jni_CallByteMethodV, jni_CallByteMethodA, jni_CallCharMethod, jni_CallCharMethodV, jni_CallCharMethodA, jni_CallShortMethod, jni_CallShortMethodV, jni_CallShortMethodA, jni_CallIntMethod, jni_CallIntMethodV, jni_CallIntMethodA, jni_CallLongMethod, jni_CallLongMethodV, jni_CallLongMethodA, jni_CallFloatMethod, jni_CallFloatMethodV, jni_CallFloatMethodA, jni_CallDoubleMethod, jni_CallDoubleMethodV, jni_CallDoubleMethodA, jni_CallVoidMethod, jni_CallVoidMethodV, jni_CallVoidMethodA, jni_CallNonvirtualObjectMethod, jni_CallNonvirtualObjectMethodV, jni_CallNonvirtualObjectMethodA, jni_CallNonvirtualBooleanMethod, jni_CallNonvirtualBooleanMethodV, jni_CallNonvirtualBooleanMethodA, jni_CallNonvirtualByteMethod, jni_CallNonvirtualByteMethodV, jni_CallNonvirtualByteMethodA, jni_CallNonvirtualCharMethod, jni_CallNonvirtualCharMethodV, jni_CallNonvirtualCharMethodA, jni_CallNonvirtualShortMethod, jni_CallNonvirtualShortMethodV, jni_CallNonvirtualShortMethodA, jni_CallNonvirtualIntMethod, jni_CallNonvirtualIntMethodV, jni_CallNonvirtualIntMethodA, jni_CallNonvirtualLongMethod, jni_CallNonvirtualLongMethodV, jni_CallNonvirtualLongMethodA, jni_CallNonvirtualFloatMethod, jni_CallNonvirtualFloatMethodV, jni_CallNonvirtualFloatMethodA, jni_CallNonvirtualDoubleMethod, jni_CallNonvirtualDoubleMethodV, jni_CallNonvirtualDoubleMethodA, jni_CallNonvirtualVoidMethod, jni_CallNonvirtualVoidMethodV, jni_CallNonvirtualVoidMethodA, jni_GetFieldID, jni_GetObjectField, jni_GetBooleanField, jni_GetByteField, jni_GetCharField, jni_GetShortField, jni_GetIntField, jni_GetLongField, jni_GetFloatField, jni_GetDoubleField, jni_SetObjectField, jni_SetBooleanField, jni_SetByteField, jni_SetCharField, jni_SetShortField, jni_SetIntField, jni_SetLongField, jni_SetFloatField, jni_SetDoubleField, jni_GetStaticMethodID, jni_CallStaticObjectMethod, jni_CallStaticObjectMethodV, jni_CallStaticObjectMethodA, jni_CallStaticBooleanMethod, jni_CallStaticBooleanMethodV, jni_CallStaticBooleanMethodA, jni_CallStaticByteMethod, jni_CallStaticByteMethodV, jni_CallStaticByteMethodA, jni_CallStaticCharMethod, jni_CallStaticCharMethodV, jni_CallStaticCharMethodA, jni_CallStaticShortMethod, jni_CallStaticShortMethodV, jni_CallStaticShortMethodA, jni_CallStaticIntMethod, jni_CallStaticIntMethodV, jni_CallStaticIntMethodA, jni_CallStaticLongMethod, jni_CallStaticLongMethodV, jni_CallStaticLongMethodA, jni_CallStaticFloatMethod, jni_CallStaticFloatMethodV, jni_CallStaticFloatMethodA, jni_CallStaticDoubleMethod, jni_CallStaticDoubleMethodV, jni_CallStaticDoubleMethodA, jni_CallStaticVoidMethod, jni_CallStaticVoidMethodV, jni_CallStaticVoidMethodA, jni_GetStaticFieldID, jni_GetStaticObjectField, jni_GetStaticBooleanField, jni_GetStaticByteField, jni_GetStaticCharField, jni_GetStaticShortField, jni_GetStaticIntField, jni_GetStaticLongField, jni_GetStaticFloatField, jni_GetStaticDoubleField, jni_SetStaticObjectField, jni_SetStaticBooleanField, jni_SetStaticByteField, jni_SetStaticCharField, jni_SetStaticShortField, jni_SetStaticIntField, jni_SetStaticLongField, jni_SetStaticFloatField, jni_SetStaticDoubleField, jni_NewString, jni_GetStringLength, jni_GetStringChars, jni_ReleaseStringChars, jni_NewStringUTF, jni_GetStringUTFLength, jni_GetStringUTFChars, jni_ReleaseStringUTFChars, jni_GetArrayLength, jni_NewObjectArray, jni_GetObjectArrayElement, jni_SetObjectArrayElement, jni_NewBooleanArray, jni_NewByteArray, jni_NewCharArray, jni_NewShortArray, jni_NewIntArray, jni_NewLongArray, jni_NewFloatArray, jni_NewDoubleArray, jni_GetBooleanArrayElements, /* GetBooleanArrayElements */ jni_GetByteArrayElements, jni_GetCharArrayElements, jni_GetShortArrayElements, jni_GetIntArrayElements, jni_GetLongArrayElements, jni_GetFloatArrayElements, jni_GetDoubleArrayElements, jni_ReleaseBooleanArrayElements, /* ReleaseBooleanArrayElements */ jni_ReleaseByteArrayElements, jni_ReleaseCharArrayElements, jni_ReleaseShortArrayElements, jni_ReleaseIntArrayElements, jni_ReleaseLongArrayElements, jni_ReleaseFloatArrayElements, jni_ReleaseDoubleArrayElements, jni_GetBooleanArrayRegion, /* GetBooleanArrayRegion */ jni_GetByteArrayRegion, jni_GetCharArrayRegion, jni_GetShortArrayRegion, jni_GetIntArrayRegion, jni_GetLongArrayRegion, jni_GetFloatArrayRegion, jni_GetDoubleArrayRegion, jni_SetBooleanArrayRegion, /* SetBooleanArrayRegion */ jni_SetByteArrayRegion, jni_SetCharArrayRegion, jni_SetShortArrayRegion, jni_SetIntArrayRegion, jni_SetLongArrayRegion, jni_SetFloatArrayRegion, jni_SetDoubleArrayRegion, jni_RegisterNatives, jni_UnregisterNatives, jni_MonitorEnter, jni_MonitorExit, jni_GetJavaVM, }


Generated at Mon Jul 31 13:42:05 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000