Landing changes in the OJI_19980727_BRANCH since the OJI_19980727_TIP_MERGE tag.
git-svn-id: svn://10.0.0.236/trunk@6967 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
@@ -15,14 +15,138 @@
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* Netscape version of jni_md.h -- depends on jri_md.h
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef JNI_MD_H
|
||||
#define JNI_MD_H
|
||||
|
||||
/* Get the rest of the stuff from jri_md.h */
|
||||
#include "jri_md.h"
|
||||
/*******************************************************************************
|
||||
* WHAT'S UP WITH THIS FILE?
|
||||
*
|
||||
* This is where we define the mystical JNI_PUBLIC_API macro that works on all
|
||||
* platforms. If you're running with Visual C++, Symantec C, or Borland's
|
||||
* development environment on the PC, you're all set. Or if you're on the Mac
|
||||
* with Metrowerks, Symantec or MPW with SC you're ok too. For UNIX it shouldn't
|
||||
* matter.
|
||||
|
||||
* Changes by sailesh on 9/26
|
||||
|
||||
* There are two symbols used in the declaration of the JNI functions
|
||||
* and native code that uses the JNI:
|
||||
* JNICALL - specifies the calling convention
|
||||
* JNIEXPORT - specifies export status of the function
|
||||
*
|
||||
* The syntax to specify calling conventions is different in Win16 and
|
||||
* Win32 - the brains at Micro$oft at work here. JavaSoft in their
|
||||
* infinite wisdom cares for no platform other than Win32, and so they
|
||||
* just define these two symbols as:
|
||||
|
||||
#define JNIEXPORT __declspec(dllexport)
|
||||
#define JNICALL __stdcall
|
||||
|
||||
* We deal with this, in the way JRI defines the JRI_PUBLIC_API, by
|
||||
* defining a macro called JNI_PUBLIC_API. Any of our developers who
|
||||
* wish to use code for Win16 and Win32, _must_ use JNI_PUBLIC_API to
|
||||
* be able to export functions properly.
|
||||
|
||||
* Since we must also maintain compatibility with JavaSoft, we
|
||||
* continue to define the symbol JNIEXPORT. However, use of this
|
||||
* internally is deprecated, since it will cause a mess on Win16.
|
||||
|
||||
* We _do not_ need a new symbol called JNICALL. Instead we
|
||||
* redefine JNICALL in the same way JRI_CALLBACK was defined.
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
/* DLL Entry modifiers... */
|
||||
|
||||
/* PC */
|
||||
#if defined(XP_PC) || defined(_WINDOWS) || defined(WIN32) || defined(_WIN32)
|
||||
# include <windows.h>
|
||||
# if defined(_MSC_VER)
|
||||
# if defined(WIN32) || defined(_WIN32)
|
||||
# define JNI_PUBLIC_API(ResultType) _declspec(dllexport) ResultType __stdcall
|
||||
# define JNI_PUBLIC_VAR(VarType) VarType
|
||||
# define JNI_NATIVE_STUB(ResultType) _declspec(dllexport) ResultType
|
||||
# define JNICALL __stdcall
|
||||
# else /* !_WIN32 */
|
||||
# if defined(_WINDLL)
|
||||
# define JNI_PUBLIC_API(ResultType) ResultType __cdecl __export __loadds
|
||||
# define JNI_PUBLIC_VAR(VarType) VarType
|
||||
# define JNI_NATIVE_STUB(ResultType) ResultType __cdecl __loadds
|
||||
# define JNICALL __loadds
|
||||
# else /* !WINDLL */
|
||||
# define JNI_PUBLIC_API(ResultType) ResultType __cdecl __export
|
||||
# define JNI_PUBLIC_VAR(VarType) VarType
|
||||
# define JNI_NATIVE_STUB(ResultType) ResultType __cdecl __export
|
||||
# define JNICALL __export
|
||||
# endif /* !WINDLL */
|
||||
# endif /* !_WIN32 */
|
||||
# elif defined(__BORLANDC__)
|
||||
# if defined(WIN32) || defined(_WIN32)
|
||||
# define JNI_PUBLIC_API(ResultType) __export ResultType
|
||||
# define JNI_PUBLIC_VAR(VarType) VarType
|
||||
# define JNI_NATIVE_STUB(ResultType) __export ResultType
|
||||
# define JNICALL
|
||||
# else /* !_WIN32 */
|
||||
# define JNI_PUBLIC_API(ResultType) ResultType _cdecl _export _loadds
|
||||
# define JNI_PUBLIC_VAR(VarType) VarType
|
||||
# define JNI_NATIVE_STUB(ResultType) ResultType _cdecl _loadds
|
||||
# define JNICALL _loadds
|
||||
# endif
|
||||
# else
|
||||
# error Unsupported PC development environment.
|
||||
# endif
|
||||
# ifndef IS_LITTLE_ENDIAN
|
||||
# define IS_LITTLE_ENDIAN
|
||||
# endif
|
||||
/* This is the stuff inherited from JavaSoft .. */
|
||||
# define JNIEXPORT __declspec(dllexport)
|
||||
|
||||
|
||||
/* Mac */
|
||||
#elif macintosh || Macintosh || THINK_C
|
||||
# if defined(__MWERKS__) /* Metrowerks */
|
||||
# if !__option(enumsalwaysint)
|
||||
# error You need to define 'Enums Always Int' for your project.
|
||||
# endif
|
||||
# if defined(GENERATING68K) && !GENERATINGCFM
|
||||
# if !__option(fourbyteints)
|
||||
# error You need to define 'Struct Alignment: 68k' for your project.
|
||||
# endif
|
||||
# endif /* !GENERATINGCFM */
|
||||
# define JNI_PUBLIC_API(ResultType) __declspec(export) ResultType
|
||||
# define JNI_PUBLIC_VAR(VarType) JNI_PUBLIC_API(VarType)
|
||||
# define JNI_NATIVE_STUB(ResultType) JNI_PUBLIC_API(ResultType)
|
||||
# elif defined(__SC__) /* Symantec */
|
||||
# error What are the Symantec defines? (warren@netscape.com)
|
||||
# elif macintosh && applec /* MPW */
|
||||
# error Please upgrade to the latest MPW compiler (SC).
|
||||
# else
|
||||
# error Unsupported Mac development environment.
|
||||
# endif
|
||||
# define JNICALL
|
||||
/* This is the stuff inherited from JavaSoft .. */
|
||||
# define JNIEXPORT
|
||||
|
||||
/* Unix or else */
|
||||
#else
|
||||
# define JNI_PUBLIC_API(ResultType) ResultType
|
||||
# define JNI_PUBLIC_VAR(VarType) VarType
|
||||
# define JNI_NATIVE_STUB(ResultType) ResultType
|
||||
# define JNICALL
|
||||
/* This is the stuff inherited from JavaSoft .. */
|
||||
# define JNIEXPORT
|
||||
#endif
|
||||
|
||||
#ifndef FAR /* for non-Win16 */
|
||||
#define FAR
|
||||
#endif
|
||||
|
||||
/* Get the rest of the stuff from jri_md.h */
|
||||
#include "jri_md.h"
|
||||
|
||||
#endif /* JNI_MD_H */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
@@ -15,6 +15,11 @@
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* Java Runtime Interface
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef JRI_H
|
||||
#define JRI_H
|
||||
|
||||
@@ -24,11 +29,642 @@
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
typedef void JRIEnvInterface;
|
||||
typedef const JRIEnvInterface *JRIEnv;
|
||||
/*******************************************************************************
|
||||
* JRIEnv
|
||||
******************************************************************************/
|
||||
|
||||
/* The type of the JRIEnv interface. */
|
||||
typedef struct JRIEnvInterface JRIEnvInterface;
|
||||
|
||||
/* The type of a JRIEnv instance. */
|
||||
typedef const JRIEnvInterface* JRIEnv;
|
||||
|
||||
/*******************************************************************************
|
||||
* JRIEnv Operations
|
||||
******************************************************************************/
|
||||
|
||||
#define JRI_DefineClass(env, classLoader, buf, bufLen) \
|
||||
(((*(env))->DefineClass)(env, JRI_DefineClass_op, classLoader, buf, bufLen))
|
||||
|
||||
#define JRI_FindClass(env, name) \
|
||||
(((*(env))->FindClass)(env, JRI_FindClass_op, name))
|
||||
|
||||
#define JRI_Throw(env, obj) \
|
||||
(((*(env))->Throw)(env, JRI_Throw_op, obj))
|
||||
|
||||
#define JRI_ThrowNew(env, clazz, message) \
|
||||
(((*(env))->ThrowNew)(env, JRI_ThrowNew_op, clazz, message))
|
||||
|
||||
#define JRI_ExceptionOccurred(env) \
|
||||
(((*(env))->ExceptionOccurred)(env, JRI_ExceptionOccurred_op))
|
||||
|
||||
#define JRI_ExceptionDescribe(env) \
|
||||
(((*(env))->ExceptionDescribe)(env, JRI_ExceptionDescribe_op))
|
||||
|
||||
#define JRI_ExceptionClear(env) \
|
||||
(((*(env))->ExceptionClear)(env, JRI_ExceptionClear_op))
|
||||
|
||||
#define JRI_NewGlobalRef(env, ref) \
|
||||
(((*(env))->NewGlobalRef)(env, JRI_NewGlobalRef_op, ref))
|
||||
|
||||
#define JRI_DisposeGlobalRef(env, gref) \
|
||||
(((*(env))->DisposeGlobalRef)(env, JRI_DisposeGlobalRef_op, gref))
|
||||
|
||||
#define JRI_GetGlobalRef(env, gref) \
|
||||
(((*(env))->GetGlobalRef)(env, JRI_GetGlobalRef_op, gref))
|
||||
|
||||
#define JRI_SetGlobalRef(env, gref, ref) \
|
||||
(((*(env))->SetGlobalRef)(env, JRI_SetGlobalRef_op, gref, ref))
|
||||
|
||||
#define JRI_IsSameObject(env, a, b) \
|
||||
(((*(env))->IsSameObject)(env, JRI_IsSameObject_op, a, b))
|
||||
|
||||
#define JRI_NewObject(env) ((*(env))->NewObject)
|
||||
#define JRI_NewObjectV(env, clazz, methodID, args) \
|
||||
(((*(env))->NewObjectV)(env, JRI_NewObject_op_va_list, clazz, methodID, args))
|
||||
#define JRI_NewObjectA(env, clazz, method, args) \
|
||||
(((*(env))->NewObjectA)(env, JRI_NewObject_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_GetObjectClass(env, obj) \
|
||||
(((*(env))->GetObjectClass)(env, JRI_GetObjectClass_op, obj))
|
||||
|
||||
#define JRI_IsInstanceOf(env, obj, clazz) \
|
||||
(((*(env))->IsInstanceOf)(env, JRI_IsInstanceOf_op, obj, clazz))
|
||||
|
||||
#define JRI_GetMethodID(env, clazz, name, sig) \
|
||||
(((*(env))->GetMethodID)(env, JRI_GetMethodID_op, clazz, name, sig))
|
||||
|
||||
#define JRI_CallMethod(env) ((*(env))->CallMethod)
|
||||
#define JRI_CallMethodV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodV)(env, JRI_CallMethod_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodA)(env, JRI_CallMethod_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_CallMethodBoolean(env) ((*(env))->CallMethodBoolean)
|
||||
#define JRI_CallMethodBooleanV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodBooleanV)(env, JRI_CallMethodBoolean_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodBooleanA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodBooleanA)(env, JRI_CallMethodBoolean_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_CallMethodByte(env) ((*(env))->CallMethodByte)
|
||||
#define JRI_CallMethodByteV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodByteV)(env, JRI_CallMethodByte_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodByteA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodByteA)(env, JRI_CallMethodByte_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_CallMethodChar(env) ((*(env))->CallMethodChar)
|
||||
#define JRI_CallMethodCharV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodCharV)(env, JRI_CallMethodChar_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodCharA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodCharA)(env, JRI_CallMethodChar_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_CallMethodShort(env) ((*(env))->CallMethodShort)
|
||||
#define JRI_CallMethodShortV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodShortV)(env, JRI_CallMethodShort_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodShortA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodShortA)(env, JRI_CallMethodShort_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_CallMethodInt(env) ((*(env))->CallMethodInt)
|
||||
#define JRI_CallMethodIntV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodIntV)(env, JRI_CallMethodInt_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodIntA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodIntA)(env, JRI_CallMethodInt_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_CallMethodLong(env) ((*(env))->CallMethodLong)
|
||||
#define JRI_CallMethodLongV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodLongV)(env, JRI_CallMethodLong_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodLongA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodLongA)(env, JRI_CallMethodLong_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_CallMethodFloat(env) ((*(env))->CallMethodFloat)
|
||||
#define JRI_CallMethodFloatV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodFloatV)(env, JRI_CallMethodFloat_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodFloatA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodFloatA)(env, JRI_CallMethodFloat_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_CallMethodDouble(env) ((*(env))->CallMethodDouble)
|
||||
#define JRI_CallMethodDoubleV(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodDoubleV)(env, JRI_CallMethodDouble_op_va_list, obj, methodID, args))
|
||||
#define JRI_CallMethodDoubleA(env, obj, methodID, args) \
|
||||
(((*(env))->CallMethodDoubleA)(env, JRI_CallMethodDouble_op_array, obj, methodID, args))
|
||||
|
||||
#define JRI_GetFieldID(env, clazz, name, sig) \
|
||||
(((*(env))->GetFieldID)(env, JRI_GetFieldID_op, clazz, name, sig))
|
||||
|
||||
#define JRI_GetField(env, obj, fieldID) \
|
||||
(((*(env))->GetField)(env, JRI_GetField_op, obj, fieldID))
|
||||
|
||||
#define JRI_GetFieldBoolean(env, obj, fieldID) \
|
||||
(((*(env))->GetFieldBoolean)(env, JRI_GetFieldBoolean_op, obj, fieldID))
|
||||
|
||||
#define JRI_GetFieldByte(env, obj, fieldID) \
|
||||
(((*(env))->GetFieldByte)(env, JRI_GetFieldByte_op, obj, fieldID))
|
||||
|
||||
#define JRI_GetFieldChar(env, obj, fieldID) \
|
||||
(((*(env))->GetFieldChar)(env, JRI_GetFieldChar_op, obj, fieldID))
|
||||
|
||||
#define JRI_GetFieldShort(env, obj, fieldID) \
|
||||
(((*(env))->GetFieldShort)(env, JRI_GetFieldShort_op, obj, fieldID))
|
||||
|
||||
#define JRI_GetFieldInt(env, obj, fieldID) \
|
||||
(((*(env))->GetFieldInt)(env, JRI_GetFieldInt_op, obj, fieldID))
|
||||
|
||||
#define JRI_GetFieldLong(env, obj, fieldID) \
|
||||
(((*(env))->GetFieldLong)(env, JRI_GetFieldLong_op, obj, fieldID))
|
||||
|
||||
#define JRI_GetFieldFloat(env, obj, fieldID) \
|
||||
(((*(env))->GetFieldFloat)(env, JRI_GetFieldFloat_op, obj, fieldID))
|
||||
|
||||
#define JRI_GetFieldDouble(env, obj, fieldID) \
|
||||
(((*(env))->GetFieldDouble)(env, JRI_GetFieldDouble_op, obj, fieldID))
|
||||
|
||||
#define JRI_SetField(env, obj, fieldID, value) \
|
||||
(((*(env))->SetField)(env, JRI_SetField_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_SetFieldBoolean(env, obj, fieldID, value) \
|
||||
(((*(env))->SetFieldBoolean)(env, JRI_SetFieldBoolean_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_SetFieldByte(env, obj, fieldID, value) \
|
||||
(((*(env))->SetFieldByte)(env, JRI_SetFieldByte_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_SetFieldChar(env, obj, fieldID, value) \
|
||||
(((*(env))->SetFieldChar)(env, JRI_SetFieldChar_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_SetFieldShort(env, obj, fieldID, value) \
|
||||
(((*(env))->SetFieldShort)(env, JRI_SetFieldShort_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_SetFieldInt(env, obj, fieldID, value) \
|
||||
(((*(env))->SetFieldInt)(env, JRI_SetFieldInt_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_SetFieldLong(env, obj, fieldID, value) \
|
||||
(((*(env))->SetFieldLong)(env, JRI_SetFieldLong_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_SetFieldFloat(env, obj, fieldID, value) \
|
||||
(((*(env))->SetFieldFloat)(env, JRI_SetFieldFloat_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_SetFieldDouble(env, obj, fieldID, value) \
|
||||
(((*(env))->SetFieldDouble)(env, JRI_SetFieldDouble_op, obj, fieldID, value))
|
||||
|
||||
#define JRI_IsSubclassOf(env, a, b) \
|
||||
(((*(env))->IsSubclassOf)(env, JRI_IsSubclassOf_op, a, b))
|
||||
|
||||
#define JRI_GetStaticMethodID(env, clazz, name, sig) \
|
||||
(((*(env))->GetStaticMethodID)(env, JRI_GetStaticMethodID_op, clazz, name, sig))
|
||||
|
||||
#define JRI_CallStaticMethod(env) ((*(env))->CallStaticMethod)
|
||||
#define JRI_CallStaticMethodV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodV)(env, JRI_CallStaticMethod_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodA)(env, JRI_CallStaticMethod_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_CallStaticMethodBoolean(env) ((*(env))->CallStaticMethodBoolean)
|
||||
#define JRI_CallStaticMethodBooleanV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodBooleanV)(env, JRI_CallStaticMethodBoolean_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodBooleanA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodBooleanA)(env, JRI_CallStaticMethodBoolean_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_CallStaticMethodByte(env) ((*(env))->CallStaticMethodByte)
|
||||
#define JRI_CallStaticMethodByteV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodByteV)(env, JRI_CallStaticMethodByte_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodByteA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodByteA)(env, JRI_CallStaticMethodByte_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_CallStaticMethodChar(env) ((*(env))->CallStaticMethodChar)
|
||||
#define JRI_CallStaticMethodCharV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodCharV)(env, JRI_CallStaticMethodChar_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodCharA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodCharA)(env, JRI_CallStaticMethodChar_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_CallStaticMethodShort(env) ((*(env))->CallStaticMethodShort)
|
||||
#define JRI_CallStaticMethodShortV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodShortV)(env, JRI_CallStaticMethodShort_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodShortA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodShortA)(env, JRI_CallStaticMethodShort_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_CallStaticMethodInt(env) ((*(env))->CallStaticMethodInt)
|
||||
#define JRI_CallStaticMethodIntV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodIntV)(env, JRI_CallStaticMethodInt_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodIntA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodIntA)(env, JRI_CallStaticMethodInt_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_CallStaticMethodLong(env) ((*(env))->CallStaticMethodLong)
|
||||
#define JRI_CallStaticMethodLongV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodLongV)(env, JRI_CallStaticMethodLong_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodLongA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodLongA)(env, JRI_CallStaticMethodLong_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_CallStaticMethodFloat(env) ((*(env))->CallStaticMethodFloat)
|
||||
#define JRI_CallStaticMethodFloatV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodFloatV)(env, JRI_CallStaticMethodFloat_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodFloatA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodFloatA)(env, JRI_CallStaticMethodFloat_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_CallStaticMethodDouble(env) ((*(env))->CallStaticMethodDouble)
|
||||
#define JRI_CallStaticMethodDoubleV(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodDoubleV)(env, JRI_CallStaticMethodDouble_op_va_list, clazz, methodID, args))
|
||||
#define JRI_CallStaticMethodDoubleA(env, clazz, methodID, args) \
|
||||
(((*(env))->CallStaticMethodDoubleA)(env, JRI_CallStaticMethodDouble_op_array, clazz, methodID, args))
|
||||
|
||||
#define JRI_GetStaticFieldID(env, clazz, name, sig) \
|
||||
(((*(env))->GetStaticFieldID)(env, JRI_GetStaticFieldID_op, clazz, name, sig))
|
||||
|
||||
#define JRI_GetStaticField(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticField)(env, JRI_GetStaticField_op, clazz, fieldID))
|
||||
|
||||
#define JRI_GetStaticFieldBoolean(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticFieldBoolean)(env, JRI_GetStaticFieldBoolean_op, clazz, fieldID))
|
||||
|
||||
#define JRI_GetStaticFieldByte(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticFieldByte)(env, JRI_GetStaticFieldByte_op, clazz, fieldID))
|
||||
|
||||
#define JRI_GetStaticFieldChar(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticFieldChar)(env, JRI_GetStaticFieldChar_op, clazz, fieldID))
|
||||
|
||||
#define JRI_GetStaticFieldShort(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticFieldShort)(env, JRI_GetStaticFieldShort_op, clazz, fieldID))
|
||||
|
||||
#define JRI_GetStaticFieldInt(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticFieldInt)(env, JRI_GetStaticFieldInt_op, clazz, fieldID))
|
||||
|
||||
#define JRI_GetStaticFieldLong(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticFieldLong)(env, JRI_GetStaticFieldLong_op, clazz, fieldID))
|
||||
|
||||
#define JRI_GetStaticFieldFloat(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticFieldFloat)(env, JRI_GetStaticFieldFloat_op, clazz, fieldID))
|
||||
|
||||
#define JRI_GetStaticFieldDouble(env, clazz, fieldID) \
|
||||
(((*(env))->GetStaticFieldDouble)(env, JRI_GetStaticFieldDouble_op, clazz, fieldID))
|
||||
|
||||
#define JRI_SetStaticField(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticField)(env, JRI_SetStaticField_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_SetStaticFieldBoolean(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticFieldBoolean)(env, JRI_SetStaticFieldBoolean_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_SetStaticFieldByte(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticFieldByte)(env, JRI_SetStaticFieldByte_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_SetStaticFieldChar(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticFieldChar)(env, JRI_SetStaticFieldChar_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_SetStaticFieldShort(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticFieldShort)(env, JRI_SetStaticFieldShort_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_SetStaticFieldInt(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticFieldInt)(env, JRI_SetStaticFieldInt_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_SetStaticFieldLong(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticFieldLong)(env, JRI_SetStaticFieldLong_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_SetStaticFieldFloat(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticFieldFloat)(env, JRI_SetStaticFieldFloat_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_SetStaticFieldDouble(env, clazz, fieldID, value) \
|
||||
(((*(env))->SetStaticFieldDouble)(env, JRI_SetStaticFieldDouble_op, clazz, fieldID, value))
|
||||
|
||||
#define JRI_NewString(env, unicode, len) \
|
||||
(((*(env))->NewString)(env, JRI_NewString_op, unicode, len))
|
||||
|
||||
#define JRI_GetStringLength(env, string) \
|
||||
(((*(env))->GetStringLength)(env, JRI_GetStringLength_op, string))
|
||||
|
||||
#define JRI_GetStringChars(env, string) \
|
||||
(((*(env))->GetStringChars)(env, JRI_GetStringChars_op, string))
|
||||
|
||||
#define JRI_NewStringUTF(env, utf, len) \
|
||||
(((*(env))->NewStringUTF)(env, JRI_NewStringUTF_op, utf, len))
|
||||
|
||||
#define JRI_GetStringUTFLength(env, string) \
|
||||
(((*(env))->GetStringUTFLength)(env, JRI_GetStringUTFLength_op, string))
|
||||
|
||||
#define JRI_GetStringUTFChars(env, string) \
|
||||
(((*(env))->GetStringUTFChars)(env, JRI_GetStringUTFChars_op, string))
|
||||
|
||||
#define JRI_NewScalarArray(env, length, elementSig, initialElements) \
|
||||
(((*(env))->NewScalarArray)(env, JRI_NewScalarArray_op, length, elementSig, initialElements))
|
||||
|
||||
#define JRI_GetScalarArrayLength(env, array) \
|
||||
(((*(env))->GetScalarArrayLength)(env, JRI_GetScalarArrayLength_op, array))
|
||||
|
||||
#define JRI_GetScalarArrayElements(env, array) \
|
||||
(((*(env))->GetScalarArrayElements)(env, JRI_GetScalarArrayElements_op, array))
|
||||
|
||||
#define JRI_NewObjectArray(env, length, elementClass, initialElement) \
|
||||
(((*(env))->NewObjectArray)(env, JRI_NewObjectArray_op, length, elementClass, initialElement))
|
||||
|
||||
#define JRI_GetObjectArrayLength(env, array) \
|
||||
(((*(env))->GetObjectArrayLength)(env, JRI_GetObjectArrayLength_op, array))
|
||||
|
||||
#define JRI_GetObjectArrayElement(env, array, index) \
|
||||
(((*(env))->GetObjectArrayElement)(env, JRI_GetObjectArrayElement_op, array, index))
|
||||
|
||||
#define JRI_SetObjectArrayElement(env, array, index, value) \
|
||||
(((*(env))->SetObjectArrayElement)(env, JRI_SetObjectArrayElement_op, array, index, value))
|
||||
|
||||
#define JRI_RegisterNatives(env, clazz, nameAndSigArray, nativeProcArray) \
|
||||
(((*(env))->RegisterNatives)(env, JRI_RegisterNatives_op, clazz, nameAndSigArray, nativeProcArray))
|
||||
|
||||
#define JRI_UnregisterNatives(env, clazz) \
|
||||
(((*(env))->UnregisterNatives)(env, JRI_UnregisterNatives_op, clazz))
|
||||
|
||||
#define JRI_NewStringPlatform(env, string, len, encoding, encodingLength) \
|
||||
(((*(env))->NewStringPlatform)(env, JRI_NewStringPlatform_op, string, len, encoding, encodingLength))
|
||||
|
||||
#define JRI_GetStringPlatformChars(env, string, encoding, encodingLength) \
|
||||
(((*(env))->GetStringPlatformChars)(env, JRI_GetStringPlatformChars_op, string, encoding, encodingLength))
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* JRIEnv Interface
|
||||
******************************************************************************/
|
||||
|
||||
struct java_lang_ClassLoader;
|
||||
struct java_lang_Class;
|
||||
struct java_lang_Throwable;
|
||||
struct java_lang_Object;
|
||||
struct java_lang_String;
|
||||
|
||||
struct JRIEnvInterface {
|
||||
void* reserved0;
|
||||
void* reserved1;
|
||||
void* reserved2;
|
||||
void* reserved3;
|
||||
struct java_lang_Class* (*FindClass)(JRIEnv* env, jint op, const char* a);
|
||||
void (*Throw)(JRIEnv* env, jint op, struct java_lang_Throwable* a);
|
||||
void (*ThrowNew)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b);
|
||||
struct java_lang_Throwable* (*ExceptionOccurred)(JRIEnv* env, jint op);
|
||||
void (*ExceptionDescribe)(JRIEnv* env, jint op);
|
||||
void (*ExceptionClear)(JRIEnv* env, jint op);
|
||||
jglobal (*NewGlobalRef)(JRIEnv* env, jint op, void* a);
|
||||
void (*DisposeGlobalRef)(JRIEnv* env, jint op, jglobal a);
|
||||
void* (*GetGlobalRef)(JRIEnv* env, jint op, jglobal a);
|
||||
void (*SetGlobalRef)(JRIEnv* env, jint op, jglobal a, void* b);
|
||||
jbool (*IsSameObject)(JRIEnv* env, jint op, void* a, void* b);
|
||||
void* (*NewObject)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
void* (*NewObjectV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
void* (*NewObjectA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
struct java_lang_Class* (*GetObjectClass)(JRIEnv* env, jint op, void* a);
|
||||
jbool (*IsInstanceOf)(JRIEnv* env, jint op, void* a, struct java_lang_Class* b);
|
||||
jint (*GetMethodID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
|
||||
void* (*CallMethod)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
void* (*CallMethodV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
void* (*CallMethodA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jbool (*CallMethodBoolean)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
jbool (*CallMethodBooleanV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
jbool (*CallMethodBooleanA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jbyte (*CallMethodByte)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
jbyte (*CallMethodByteV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
jbyte (*CallMethodByteA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jchar (*CallMethodChar)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
jchar (*CallMethodCharV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
jchar (*CallMethodCharA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jshort (*CallMethodShort)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
jshort (*CallMethodShortV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
jshort (*CallMethodShortA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jint (*CallMethodInt)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
jint (*CallMethodIntV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
jint (*CallMethodIntA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jlong (*CallMethodLong)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
jlong (*CallMethodLongV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
jlong (*CallMethodLongA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jfloat (*CallMethodFloat)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
jfloat (*CallMethodFloatV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
jfloat (*CallMethodFloatA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jdouble (*CallMethodDouble)(JRIEnv* env, jint op, void* a, jint b, ...);
|
||||
jdouble (*CallMethodDoubleV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
|
||||
jdouble (*CallMethodDoubleA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
|
||||
jint (*GetFieldID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
|
||||
void* (*GetField)(JRIEnv* env, jint op, void* a, jint b);
|
||||
jbool (*GetFieldBoolean)(JRIEnv* env, jint op, void* a, jint b);
|
||||
jbyte (*GetFieldByte)(JRIEnv* env, jint op, void* a, jint b);
|
||||
jchar (*GetFieldChar)(JRIEnv* env, jint op, void* a, jint b);
|
||||
jshort (*GetFieldShort)(JRIEnv* env, jint op, void* a, jint b);
|
||||
jint (*GetFieldInt)(JRIEnv* env, jint op, void* a, jint b);
|
||||
jlong (*GetFieldLong)(JRIEnv* env, jint op, void* a, jint b);
|
||||
jfloat (*GetFieldFloat)(JRIEnv* env, jint op, void* a, jint b);
|
||||
jdouble (*GetFieldDouble)(JRIEnv* env, jint op, void* a, jint b);
|
||||
void (*SetField)(JRIEnv* env, jint op, void* a, jint b, void* c);
|
||||
void (*SetFieldBoolean)(JRIEnv* env, jint op, void* a, jint b, jbool c);
|
||||
void (*SetFieldByte)(JRIEnv* env, jint op, void* a, jint b, jbyte c);
|
||||
void (*SetFieldChar)(JRIEnv* env, jint op, void* a, jint b, jchar c);
|
||||
void (*SetFieldShort)(JRIEnv* env, jint op, void* a, jint b, jshort c);
|
||||
void (*SetFieldInt)(JRIEnv* env, jint op, void* a, jint b, jint c);
|
||||
void (*SetFieldLong)(JRIEnv* env, jint op, void* a, jint b, jlong c);
|
||||
void (*SetFieldFloat)(JRIEnv* env, jint op, void* a, jint b, jfloat c);
|
||||
void (*SetFieldDouble)(JRIEnv* env, jint op, void* a, jint b, jdouble c);
|
||||
jbool (*IsSubclassOf)(JRIEnv* env, jint op, struct java_lang_Class* a, struct java_lang_Class* b);
|
||||
jint (*GetStaticMethodID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
|
||||
void* (*CallStaticMethod)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
void* (*CallStaticMethodV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
void* (*CallStaticMethodA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jbool (*CallStaticMethodBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
jbool (*CallStaticMethodBooleanV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
jbool (*CallStaticMethodBooleanA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jbyte (*CallStaticMethodByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
jbyte (*CallStaticMethodByteV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
jbyte (*CallStaticMethodByteA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jchar (*CallStaticMethodChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
jchar (*CallStaticMethodCharV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
jchar (*CallStaticMethodCharA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jshort (*CallStaticMethodShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
jshort (*CallStaticMethodShortV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
jshort (*CallStaticMethodShortA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jint (*CallStaticMethodInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
jint (*CallStaticMethodIntV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
jint (*CallStaticMethodIntA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jlong (*CallStaticMethodLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
jlong (*CallStaticMethodLongV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
jlong (*CallStaticMethodLongA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jfloat (*CallStaticMethodFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
jfloat (*CallStaticMethodFloatV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
jfloat (*CallStaticMethodFloatA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jdouble (*CallStaticMethodDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
|
||||
jdouble (*CallStaticMethodDoubleV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
|
||||
jdouble (*CallStaticMethodDoubleA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
|
||||
jint (*GetStaticFieldID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
|
||||
void* (*GetStaticField)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
jbool (*GetStaticFieldBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
jbyte (*GetStaticFieldByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
jchar (*GetStaticFieldChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
jshort (*GetStaticFieldShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
jint (*GetStaticFieldInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
jlong (*GetStaticFieldLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
jfloat (*GetStaticFieldFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
jdouble (*GetStaticFieldDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
|
||||
void (*SetStaticField)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, void* c);
|
||||
void (*SetStaticFieldBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jbool c);
|
||||
void (*SetStaticFieldByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jbyte c);
|
||||
void (*SetStaticFieldChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jchar c);
|
||||
void (*SetStaticFieldShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jshort c);
|
||||
void (*SetStaticFieldInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jint c);
|
||||
void (*SetStaticFieldLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jlong c);
|
||||
void (*SetStaticFieldFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jfloat c);
|
||||
void (*SetStaticFieldDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jdouble c);
|
||||
struct java_lang_String* (*NewString)(JRIEnv* env, jint op, const jchar* a, jint b);
|
||||
jint (*GetStringLength)(JRIEnv* env, jint op, struct java_lang_String* a);
|
||||
const jchar* (*GetStringChars)(JRIEnv* env, jint op, struct java_lang_String* a);
|
||||
struct java_lang_String* (*NewStringUTF)(JRIEnv* env, jint op, const jbyte* a, jint b);
|
||||
jint (*GetStringUTFLength)(JRIEnv* env, jint op, struct java_lang_String* a);
|
||||
const jbyte* (*GetStringUTFChars)(JRIEnv* env, jint op, struct java_lang_String* a);
|
||||
void* (*NewScalarArray)(JRIEnv* env, jint op, jint a, const char* b, const jbyte* c);
|
||||
jint (*GetScalarArrayLength)(JRIEnv* env, jint op, void* a);
|
||||
jbyte* (*GetScalarArrayElements)(JRIEnv* env, jint op, void* a);
|
||||
void* (*NewObjectArray)(JRIEnv* env, jint op, jint a, struct java_lang_Class* b, void* c);
|
||||
jint (*GetObjectArrayLength)(JRIEnv* env, jint op, void* a);
|
||||
void* (*GetObjectArrayElement)(JRIEnv* env, jint op, void* a, jint b);
|
||||
void (*SetObjectArrayElement)(JRIEnv* env, jint op, void* a, jint b, void* c);
|
||||
void (*RegisterNatives)(JRIEnv* env, jint op, struct java_lang_Class* a, char** b, void** c);
|
||||
void (*UnregisterNatives)(JRIEnv* env, jint op, struct java_lang_Class* a);
|
||||
struct java_lang_Class* (*DefineClass)(JRIEnv* env, jint op, struct java_lang_ClassLoader* a, jbyte* b, jsize bLen);
|
||||
struct java_lang_String* (*NewStringPlatform)(JRIEnv* env, jint op, const jbyte* a, jint b, const jbyte* c, jint d);
|
||||
const jbyte* (*GetStringPlatformChars)(JRIEnv* env, jint op, struct java_lang_String* a, const jbyte* b, jint c);
|
||||
};
|
||||
|
||||
/*
|
||||
** ****************************************************************************
|
||||
** JRIEnv Operation IDs
|
||||
** ***************************************************************************
|
||||
*/
|
||||
|
||||
typedef enum JRIEnvOperations {
|
||||
JRI_Reserved0_op,
|
||||
JRI_Reserved1_op,
|
||||
JRI_Reserved2_op,
|
||||
JRI_Reserved3_op,
|
||||
JRI_FindClass_op,
|
||||
JRI_Throw_op,
|
||||
JRI_ThrowNew_op,
|
||||
JRI_ExceptionOccurred_op,
|
||||
JRI_ExceptionDescribe_op,
|
||||
JRI_ExceptionClear_op,
|
||||
JRI_NewGlobalRef_op,
|
||||
JRI_DisposeGlobalRef_op,
|
||||
JRI_GetGlobalRef_op,
|
||||
JRI_SetGlobalRef_op,
|
||||
JRI_IsSameObject_op,
|
||||
JRI_NewObject_op,
|
||||
JRI_NewObject_op_va_list,
|
||||
JRI_NewObject_op_array,
|
||||
JRI_GetObjectClass_op,
|
||||
JRI_IsInstanceOf_op,
|
||||
JRI_GetMethodID_op,
|
||||
JRI_CallMethod_op,
|
||||
JRI_CallMethod_op_va_list,
|
||||
JRI_CallMethod_op_array,
|
||||
JRI_CallMethodBoolean_op,
|
||||
JRI_CallMethodBoolean_op_va_list,
|
||||
JRI_CallMethodBoolean_op_array,
|
||||
JRI_CallMethodByte_op,
|
||||
JRI_CallMethodByte_op_va_list,
|
||||
JRI_CallMethodByte_op_array,
|
||||
JRI_CallMethodChar_op,
|
||||
JRI_CallMethodChar_op_va_list,
|
||||
JRI_CallMethodChar_op_array,
|
||||
JRI_CallMethodShort_op,
|
||||
JRI_CallMethodShort_op_va_list,
|
||||
JRI_CallMethodShort_op_array,
|
||||
JRI_CallMethodInt_op,
|
||||
JRI_CallMethodInt_op_va_list,
|
||||
JRI_CallMethodInt_op_array,
|
||||
JRI_CallMethodLong_op,
|
||||
JRI_CallMethodLong_op_va_list,
|
||||
JRI_CallMethodLong_op_array,
|
||||
JRI_CallMethodFloat_op,
|
||||
JRI_CallMethodFloat_op_va_list,
|
||||
JRI_CallMethodFloat_op_array,
|
||||
JRI_CallMethodDouble_op,
|
||||
JRI_CallMethodDouble_op_va_list,
|
||||
JRI_CallMethodDouble_op_array,
|
||||
JRI_GetFieldID_op,
|
||||
JRI_GetField_op,
|
||||
JRI_GetFieldBoolean_op,
|
||||
JRI_GetFieldByte_op,
|
||||
JRI_GetFieldChar_op,
|
||||
JRI_GetFieldShort_op,
|
||||
JRI_GetFieldInt_op,
|
||||
JRI_GetFieldLong_op,
|
||||
JRI_GetFieldFloat_op,
|
||||
JRI_GetFieldDouble_op,
|
||||
JRI_SetField_op,
|
||||
JRI_SetFieldBoolean_op,
|
||||
JRI_SetFieldByte_op,
|
||||
JRI_SetFieldChar_op,
|
||||
JRI_SetFieldShort_op,
|
||||
JRI_SetFieldInt_op,
|
||||
JRI_SetFieldLong_op,
|
||||
JRI_SetFieldFloat_op,
|
||||
JRI_SetFieldDouble_op,
|
||||
JRI_IsSubclassOf_op,
|
||||
JRI_GetStaticMethodID_op,
|
||||
JRI_CallStaticMethod_op,
|
||||
JRI_CallStaticMethod_op_va_list,
|
||||
JRI_CallStaticMethod_op_array,
|
||||
JRI_CallStaticMethodBoolean_op,
|
||||
JRI_CallStaticMethodBoolean_op_va_list,
|
||||
JRI_CallStaticMethodBoolean_op_array,
|
||||
JRI_CallStaticMethodByte_op,
|
||||
JRI_CallStaticMethodByte_op_va_list,
|
||||
JRI_CallStaticMethodByte_op_array,
|
||||
JRI_CallStaticMethodChar_op,
|
||||
JRI_CallStaticMethodChar_op_va_list,
|
||||
JRI_CallStaticMethodChar_op_array,
|
||||
JRI_CallStaticMethodShort_op,
|
||||
JRI_CallStaticMethodShort_op_va_list,
|
||||
JRI_CallStaticMethodShort_op_array,
|
||||
JRI_CallStaticMethodInt_op,
|
||||
JRI_CallStaticMethodInt_op_va_list,
|
||||
JRI_CallStaticMethodInt_op_array,
|
||||
JRI_CallStaticMethodLong_op,
|
||||
JRI_CallStaticMethodLong_op_va_list,
|
||||
JRI_CallStaticMethodLong_op_array,
|
||||
JRI_CallStaticMethodFloat_op,
|
||||
JRI_CallStaticMethodFloat_op_va_list,
|
||||
JRI_CallStaticMethodFloat_op_array,
|
||||
JRI_CallStaticMethodDouble_op,
|
||||
JRI_CallStaticMethodDouble_op_va_list,
|
||||
JRI_CallStaticMethodDouble_op_array,
|
||||
JRI_GetStaticFieldID_op,
|
||||
JRI_GetStaticField_op,
|
||||
JRI_GetStaticFieldBoolean_op,
|
||||
JRI_GetStaticFieldByte_op,
|
||||
JRI_GetStaticFieldChar_op,
|
||||
JRI_GetStaticFieldShort_op,
|
||||
JRI_GetStaticFieldInt_op,
|
||||
JRI_GetStaticFieldLong_op,
|
||||
JRI_GetStaticFieldFloat_op,
|
||||
JRI_GetStaticFieldDouble_op,
|
||||
JRI_SetStaticField_op,
|
||||
JRI_SetStaticFieldBoolean_op,
|
||||
JRI_SetStaticFieldByte_op,
|
||||
JRI_SetStaticFieldChar_op,
|
||||
JRI_SetStaticFieldShort_op,
|
||||
JRI_SetStaticFieldInt_op,
|
||||
JRI_SetStaticFieldLong_op,
|
||||
JRI_SetStaticFieldFloat_op,
|
||||
JRI_SetStaticFieldDouble_op,
|
||||
JRI_NewString_op,
|
||||
JRI_GetStringLength_op,
|
||||
JRI_GetStringChars_op,
|
||||
JRI_NewStringUTF_op,
|
||||
JRI_GetStringUTFLength_op,
|
||||
JRI_GetStringUTFChars_op,
|
||||
JRI_NewScalarArray_op,
|
||||
JRI_GetScalarArrayLength_op,
|
||||
JRI_GetScalarArrayElements_op,
|
||||
JRI_NewObjectArray_op,
|
||||
JRI_GetObjectArrayLength_op,
|
||||
JRI_GetObjectArrayElement_op,
|
||||
JRI_SetObjectArrayElement_op,
|
||||
JRI_RegisterNatives_op,
|
||||
JRI_UnregisterNatives_op,
|
||||
JRI_DefineClass_op,
|
||||
JRI_NewStringPlatform_op,
|
||||
JRI_GetStringPlatformChars_op
|
||||
} JRIEnvOperations;
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* JRI_H */
|
||||
/******************************************************************************/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
@@ -15,6 +15,11 @@
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* Java Runtime Interface - Machine Dependent Types
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef JRI_MD_H
|
||||
#define JRI_MD_H
|
||||
|
||||
@@ -95,7 +100,7 @@ extern "C" {
|
||||
# endif
|
||||
|
||||
/* Mac */
|
||||
#elif macintosh || Macintosh || THINK_C
|
||||
#elif defined (macintosh) || Macintosh || THINK_C
|
||||
# if defined(__MWERKS__) /* Metrowerks */
|
||||
# if !__option(enumsalwaysint)
|
||||
# error You need to define 'Enums Always Int' for your project.
|
||||
@@ -121,7 +126,7 @@ extern "C" {
|
||||
|
||||
/* Unix or else */
|
||||
#else
|
||||
# define JRI_PUBLIC_API(ResultType) ResultType
|
||||
# define JRI_PUBLIC_API(ResultType) ResultType
|
||||
# define JRI_PUBLIC_VAR(VarType) VarType
|
||||
# define JRI_PUBLIC_VAR_EXP(VarType) JRI_PUBLIC_VAR(VarType)
|
||||
# define JRI_PUBLIC_VAR_IMP(VarType) JRI_PUBLIC_VAR(VarType)
|
||||
@@ -145,6 +150,9 @@ typedef double jdouble;
|
||||
typedef juint jsize;
|
||||
#endif
|
||||
|
||||
/* moved from jni.h -- Sun's new jni.h doesn't have this anymore */
|
||||
typedef struct _jobject *jref;
|
||||
|
||||
typedef unsigned char jbool;
|
||||
typedef char jbyte;
|
||||
#ifdef IS_64 /* XXX ok for alpha, but not right on all 64-bit architectures */
|
||||
@@ -167,21 +175,30 @@ typedef long jint;
|
||||
|
||||
#ifdef HAVE_LONG_LONG
|
||||
|
||||
#if !(defined(WIN32) || defined(_WIN32))
|
||||
typedef long long jlong;
|
||||
typedef unsigned long long julong;
|
||||
#ifdef OSF1
|
||||
|
||||
#define jlong_MAXINT 0x7fffffffffffffffLL
|
||||
#define jlong_MININT 0x8000000000000000LL
|
||||
#define jlong_ZERO 0x0LL
|
||||
/* long is default 64-bit on OSF1, -std1 does not allow long long */
|
||||
typedef long jlong;
|
||||
typedef unsigned long julong;
|
||||
#define jlong_MAXINT 0x7fffffffffffffffL
|
||||
#define jlong_MININT 0x8000000000000000L
|
||||
#define jlong_ZERO 0x0L
|
||||
|
||||
#elif (defined(WIN32) || defined(_WIN32))
|
||||
|
||||
typedef LONGLONG jlong;
|
||||
typedef DWORDLONG julong;
|
||||
#define jlong_MAXINT 0x7fffffffffffffffi64
|
||||
#define jlong_MININT 0x8000000000000000i64
|
||||
#define jlong_ZERO 0x0i64
|
||||
|
||||
#else
|
||||
typedef LONGLONG jlong;
|
||||
typedef DWORDLONG julong;
|
||||
|
||||
#define jlong_MAXINT 0x7fffffffffffffffi64
|
||||
#define jlong_MININT 0x8000000000000000i64
|
||||
#define jlong_ZERO 0x0i64
|
||||
typedef long long jlong;
|
||||
typedef unsigned long long julong;
|
||||
#define jlong_MAXINT 0x7fffffffffffffffLL
|
||||
#define jlong_MININT 0x8000000000000000LL
|
||||
#define jlong_ZERO 0x0LL
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
@@ -15,16 +15,613 @@
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* Java Runtime Interface -- Extension Interfaces
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef JRIEXT_H
|
||||
#define JRIEXT_H
|
||||
|
||||
#include "jri.h"
|
||||
#include "minicom.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern const GUID JRINativePkgID;
|
||||
|
||||
/*******************************************************************************
|
||||
* Optional Embedding
|
||||
******************************************************************************/
|
||||
|
||||
/* Runtime */
|
||||
extern const GUID JRIRuntimePkgID;
|
||||
|
||||
typedef struct JRIRuntimeInterface JRIRuntimeInterface;
|
||||
typedef const JRIRuntimeInterface* JRIRuntimeInstance;
|
||||
|
||||
typedef void
|
||||
(JRI_CALLBACK* JRICollectionStartProc)(JRIRuntimeInstance* runtime);
|
||||
|
||||
typedef void
|
||||
(JRI_CALLBACK* JRICollectionEndProc)(JRIRuntimeInstance* runtime);
|
||||
|
||||
/* Passed in JRIRuntimeInitargs: */
|
||||
typedef enum JRIVerifyMode {
|
||||
JRIVerifyNone,
|
||||
JRIVerifyRemote,
|
||||
JRIVerifyAll
|
||||
} JRIVerifyMode;
|
||||
|
||||
typedef struct JRIRuntimeInitargsStruct {
|
||||
/* Required arguments */
|
||||
short majorVersion;
|
||||
short minorVersion;
|
||||
jsize initialHeapSize;
|
||||
jsize maxHeapSize;
|
||||
JRICollectionStartProc collectionStartProc;
|
||||
JRICollectionEndProc collectionEndProc;
|
||||
JRIVerifyMode verifyMode;
|
||||
int insideNavigator;
|
||||
} JRIRuntimeInitargs;
|
||||
|
||||
/* JRIIOMode control bits. These can be or'd together */
|
||||
typedef enum JRIIOModeFlags {
|
||||
JRIIOMode_Unrestricted = ~0,
|
||||
JRIIOMode_None = 0,
|
||||
JRIIOMode_AllowStdin = 0x01,
|
||||
JRIIOMode_AllowStdout = 0x02,
|
||||
JRIIOMode_AllowSocket = 0x04,
|
||||
JRIIOMode_AllowFileInput = 0x08,
|
||||
JRIIOMode_AllowFileOutput = 0x10
|
||||
} JRIIOModeFlags;
|
||||
|
||||
typedef enum JRIFSModeFlags {
|
||||
JRIFSMode_Unrestricted, /* no C level filesystem checks */
|
||||
JRIFSMode_None /* no filesystem access allowed */
|
||||
} JRIFSModeFlags;
|
||||
|
||||
typedef enum JRIRTModeFlags {
|
||||
JRIRTMode_Unrestricted, /* no C level runtime checks */
|
||||
JRIRTMode_None /* no runtime access allowed */
|
||||
} JRIRTModeFlags;
|
||||
|
||||
extern JRI_PUBLIC_API(JRIRuntimeInstance*)
|
||||
JRI_NewRuntime(JRIRuntimeInitargs* initargs);
|
||||
|
||||
typedef void
|
||||
(*JRI_DisposeRuntime_t)(JRIRuntimeInstance* runtime);
|
||||
|
||||
/*
|
||||
** Change the JRI io mode. The JRI io mode is the lowest level security
|
||||
** check done by the C implementation of the native i/o methods.
|
||||
*/
|
||||
typedef void
|
||||
(*JRI_SetIOMode_t)(JRIRuntimeInstance* runtime, JRIIOModeFlags mode);
|
||||
|
||||
/*
|
||||
** Change the JRI fs mode. The JRI fs mode is the lowest level security
|
||||
** check done by the C implementation of the native filesystem methods.
|
||||
*/
|
||||
typedef void
|
||||
(*JRI_SetFSMode_t)(JRIRuntimeInstance* runtime, JRIFSModeFlags mode);
|
||||
|
||||
/*
|
||||
** Change the JRI runtime mode. The JRI runtime mode is the lowest
|
||||
** level security check done by the C implementation of the native
|
||||
** runtime methods.
|
||||
*/
|
||||
typedef void
|
||||
(*JRI_SetRTMode_t)(JRIRuntimeInstance* runtime, JRIRTModeFlags mode);
|
||||
|
||||
/* Environments */
|
||||
|
||||
typedef JRIEnv*
|
||||
(*JRI_NewEnv_t)(JRIRuntimeInstance* runtime, void* thread);
|
||||
|
||||
typedef void
|
||||
(*JRI_DisposeEnv_t)(JRIEnv* env);
|
||||
|
||||
typedef JRIRuntimeInstance*
|
||||
(*JRI_GetRuntime_t)(JRIEnv* env);
|
||||
|
||||
typedef void*
|
||||
(*JRI_GetThread_t)(JRIEnv* env);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetClassLoader_t)(JRIEnv* env, jref classLoader);
|
||||
|
||||
struct JRIRuntimeInterface {
|
||||
MCOM_QueryInterface_t QueryInterface;
|
||||
MCOM_AddRef_t AddRef;
|
||||
MCOM_Release_t Release;
|
||||
void* reserved3;
|
||||
JRI_DisposeRuntime_t DisposeRuntime;
|
||||
JRI_SetIOMode_t SetIOMode;
|
||||
JRI_SetFSMode_t SetFSMode;
|
||||
JRI_SetRTMode_t SetRTMode;
|
||||
JRI_NewEnv_t NewEnv;
|
||||
JRI_DisposeEnv_t DisposeEnv;
|
||||
JRI_GetRuntime_t GetRuntime;
|
||||
JRI_GetThread_t GetThread;
|
||||
JRI_SetClassLoader_t SetClassLoader;
|
||||
};
|
||||
|
||||
#define JRI_DisposeRuntime(runtime) \
|
||||
((*(runtime))->DisposeRuntime(runtime))
|
||||
|
||||
/*
|
||||
** Change the JRI io mode. The JRI io mode is the lowest level security
|
||||
** check done by the C implementation of the native i/o methods.
|
||||
*/
|
||||
#define JRI_SetIOMode(runtime, mode) \
|
||||
((*(runtime))->SetIOMode(runtime, mode))
|
||||
|
||||
/*
|
||||
** Change the JRI fs mode. The JRI fs mode is the lowest level security
|
||||
** check done by the C implementation of the native filesystem methods.
|
||||
*/
|
||||
#define JRI_SetFSMode(runtime, mode) \
|
||||
((*(runtime))->SetFSMode(runtime, mode))
|
||||
|
||||
/*
|
||||
** Change the JRI runtime mode. The JRI runtime mode is the lowest
|
||||
** level security check done by the C implementation of the native
|
||||
** runtime methods.
|
||||
*/
|
||||
#define JRI_SetRTMode(runtime, mode) \
|
||||
((*(runtime))->SetRTMode(runtime, mode))
|
||||
|
||||
/* Environments */
|
||||
|
||||
#define JRI_NewEnv(runtime, thread) \
|
||||
((*(runtime))->NewEnv(runtime, thread))
|
||||
|
||||
#define JRI_DisposeEnv(env) \
|
||||
((*(env))->DisposeEnv(env))
|
||||
|
||||
#define JRI_GetRuntime(env) \
|
||||
((*(env))->GetRuntime(env))
|
||||
|
||||
#define JRI_GetThread(env) \
|
||||
((*(env))->GetThread(env))
|
||||
|
||||
#define JRI_SetClassLoader(env, classLoader) \
|
||||
((*(env))->SetClassLoader(env, classLoader))
|
||||
|
||||
/*******************************************************************************
|
||||
* Optional Reflection
|
||||
******************************************************************************/
|
||||
|
||||
extern const GUID JRIReflectionPkgID;
|
||||
|
||||
typedef struct JRIReflectionInterface JRIReflectionInterface;
|
||||
typedef const JRIReflectionInterface* JRIReflectionEnv;
|
||||
|
||||
typedef enum JRIAccessFlags {
|
||||
/* Field and Method Access */
|
||||
JRIAccessPublic = 0x0001,
|
||||
JRIAccessPrivate = 0x0002,
|
||||
JRIAccessProtected = 0x0004,
|
||||
JRIAccessStatic = 0x0008,
|
||||
JRIAccessFinal = 0x0010,
|
||||
JRIAccessSynchronized = 0x0020,
|
||||
JRIAccessNative = 0x0100,
|
||||
/* Class Access */
|
||||
JRIAccessInterface = 0x0200,
|
||||
JRIAccessAbstract = 0x0400
|
||||
} JRIAccessFlags;
|
||||
|
||||
typedef jsize
|
||||
(*JRI_GetClassCount_t)(JRIReflectionEnv* env);
|
||||
|
||||
typedef jref
|
||||
(*JRI_GetClass_t)(JRIReflectionEnv* env, jsize index);
|
||||
|
||||
typedef const char*
|
||||
(*JRI_GetClassName_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz);
|
||||
|
||||
typedef jbool
|
||||
(*JRI_VerifyClass_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz);
|
||||
|
||||
typedef jref
|
||||
(*JRI_GetClassSuperclass_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz);
|
||||
|
||||
/* These next two routines can be used to iterate through all the
|
||||
interfaces of a class: */
|
||||
|
||||
typedef jsize
|
||||
(*JRI_GetClassInterfaceCount_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz);
|
||||
|
||||
typedef jref
|
||||
(*JRI_GetClassInterface_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz, jsize index);
|
||||
|
||||
/* These next two routines can be used to iterate through all the
|
||||
fields of a class, getting info about them: */
|
||||
|
||||
typedef jsize
|
||||
(*JRI_GetClassFieldCount_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz);
|
||||
|
||||
typedef void
|
||||
(*JRI_GetClassFieldInfo_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz,
|
||||
jsize fieldIndex, char* *fieldName, char* *fieldSig,
|
||||
JRIAccessFlags *fieldAccess, jref *fieldClass);
|
||||
|
||||
/* These next two routines can be used to iterate through all the
|
||||
methods of a class, getting info about them: */
|
||||
|
||||
typedef jsize
|
||||
(*JRI_GetClassMethodCount_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz);
|
||||
|
||||
typedef void
|
||||
(*JRI_GetClassMethodInfo_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz,
|
||||
jsize methodIndex, char* *methodName, char* *methodSig,
|
||||
JRIAccessFlags *methodAccess,
|
||||
jref *methodClass, void* *methodNativeProc);
|
||||
|
||||
typedef JRIAccessFlags
|
||||
(*JRI_GetClassAccessFlags_t)(JRIReflectionEnv* env, struct java_lang_Class* clazz);
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
struct JRIReflectionInterface {
|
||||
MCOM_QueryInterface_t QueryInterface;
|
||||
MCOM_AddRef_t AddRef;
|
||||
MCOM_Release_t Release;
|
||||
void* reserved3;
|
||||
JRI_GetClassCount_t GetClassCount;
|
||||
JRI_GetClass_t GetClass;
|
||||
JRI_GetClassName_t GetClassName;
|
||||
JRI_VerifyClass_t VerifyClass;
|
||||
JRI_GetClassSuperclass_t GetClassSuperclass;
|
||||
JRI_GetClassInterfaceCount_t GetClassInterfaceCount;
|
||||
JRI_GetClassInterface_t GetClassInterface;
|
||||
JRI_GetClassFieldCount_t GetClassFieldCount;
|
||||
JRI_GetClassFieldInfo_t GetClassFieldInfo;
|
||||
JRI_GetClassMethodCount_t GetClassMethodCount;
|
||||
JRI_GetClassMethodInfo_t GetClassMethodInfo;
|
||||
JRI_GetClassAccessFlags_t GetClassAccessFlags;
|
||||
};
|
||||
|
||||
#define JRI_GetClassCount(env) \
|
||||
((*(env))->GetClassCount(env))
|
||||
|
||||
#define JRI_GetClass(env, index) \
|
||||
((*(env))->GetClass(env, index))
|
||||
|
||||
#define JRI_GetClassName(env, clazz) \
|
||||
((*(env))->GetClassName(env, clazz))
|
||||
|
||||
#define JRI_VerifyClass(env, clazz) \
|
||||
((*(env))->VerifyClass(env, clazz))
|
||||
|
||||
#define JRI_GetClassSuperclass(env, clazz) \
|
||||
((*(env))->GetClassSuperclass(env, clazz))
|
||||
|
||||
/* These next two routines can be used to iterate through all the
|
||||
interfaces of a class: */
|
||||
|
||||
#define JRI_GetClassInterfaceCount(env, clazz) \
|
||||
((*(env))->GetClassInterfaceCount(env, clazz))
|
||||
|
||||
#define JRI_GetClassInterface(env, clazz, index) \
|
||||
((*(env))->GetClassInterface(env, clazz, index))
|
||||
|
||||
/* These next two routines can be used to iterate through all the
|
||||
fields of a class, getting info about them: */
|
||||
|
||||
#define JRI_GetClassFieldCount(env, clazz) \
|
||||
((*(env))->GetClassFieldCount(env, clazz))
|
||||
|
||||
#define JRI_GetClassFieldInfo(env, clazz, fieldIndex, fieldName, fieldSig, fieldAccess, fieldClass) \
|
||||
((*(env))->GetClassFieldInfo(env, clazz, fieldIndex, fieldName, fieldSig, fieldAccess, fieldClass))
|
||||
|
||||
/* These next two routines can be used to iterate through all the
|
||||
methods of a class, getting info about them: */
|
||||
|
||||
#define JRI_GetClassMethodCount(env, clazz) \
|
||||
((*(env))->GetClassMethodCount(env, clazz))
|
||||
|
||||
#define JRI_GetClassMethodInfo(env, clazz, methodIndex, methodName, methodSig, methodAccess, methodClass, methodNativeProc) \
|
||||
((*(env))->GetClassMethodInfo(env, clazz, methodIndex, methodName, methodSig, methodAccess, methodClass, methodNativeProc))
|
||||
|
||||
#define JRI_GetClassAccessFlags(env, clazz) \
|
||||
((*(env))->GetClassAccessFlags(env, clazz))
|
||||
|
||||
/*******************************************************************************
|
||||
* Optional Debugger
|
||||
******************************************************************************/
|
||||
|
||||
extern const GUID JRIDebuggerPkgID;
|
||||
|
||||
typedef struct JRIDebuggerInterface JRIDebuggerInterface;
|
||||
typedef const JRIDebuggerInterface* JRIDebuggerEnv;
|
||||
|
||||
/* Manipulating Stacks */
|
||||
|
||||
typedef jsize
|
||||
(*JRI_GetFrameCount_t)(JRIDebuggerEnv* env);
|
||||
|
||||
typedef jbool
|
||||
(*JRI_GetFrameInfo_t)(JRIDebuggerEnv* env, jsize frameIndex,
|
||||
jref *methodClass, jsize *methodIndex,
|
||||
jsize *pc, jsize *varsCount);
|
||||
|
||||
typedef void
|
||||
(*JRI_GetVarInfo_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex,
|
||||
char* *name, char* *signature,
|
||||
jbool *isArgument, jsize *startScope, jsize *endScope);
|
||||
|
||||
#define JRIVarNotInScope ((JRIFieldID)-1)
|
||||
|
||||
typedef void
|
||||
(*JRI_GetSourceInfo_t)(JRIDebuggerEnv* env, jsize frameIndex,
|
||||
const char* *filename, jsize *lineNumber);
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef jref
|
||||
(*JRI_GetVar_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
typedef jbool
|
||||
(*JRI_GetVar_boolean_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
typedef jbyte
|
||||
(*JRI_GetVar_byte_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
typedef jchar
|
||||
(*JRI_GetVar_char_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
typedef jshort
|
||||
(*JRI_GetVar_short_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
typedef jint
|
||||
(*JRI_GetVar_int_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
typedef jlong
|
||||
(*JRI_GetVar_long_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
typedef jfloat
|
||||
(*JRI_GetVar_float_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
typedef jdouble
|
||||
(*JRI_GetVar_double_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex);
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jref value);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_boolean_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jbool value);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_byte_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jbyte value);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_char_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jchar value);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_short_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jshort value);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_int_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jint value);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_long_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jlong value);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_float_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jfloat value);
|
||||
|
||||
typedef void
|
||||
(*JRI_SetVar_double_t)(JRIDebuggerEnv* env, jsize frameIndex, jsize varIndex, jdouble value);
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Controlling Execution */
|
||||
|
||||
typedef void
|
||||
(*JRI_StepOver_t)(JRIDebuggerEnv* env);
|
||||
|
||||
typedef void
|
||||
(*JRI_StepIn_t)(JRIDebuggerEnv* env);
|
||||
|
||||
typedef void
|
||||
(*JRI_StepOut_t)(JRIDebuggerEnv* env);
|
||||
|
||||
typedef void
|
||||
(*JRI_Continue_t)(JRIDebuggerEnv* env);
|
||||
|
||||
typedef void
|
||||
(*JRI_Return_t)(JRIDebuggerEnv* env, jsize frameIndex, JRIValue value);
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
struct JRIDebuggerInterface {
|
||||
MCOM_QueryInterface_t QueryInterface;
|
||||
MCOM_AddRef_t AddRef;
|
||||
MCOM_Release_t Release;
|
||||
void* reserved3;
|
||||
JRI_GetFrameCount_t GetFrameCount;
|
||||
JRI_GetFrameInfo_t GetFrameInfo;
|
||||
JRI_GetVarInfo_t GetVarInfo;
|
||||
JRI_GetSourceInfo_t GetSourceInfo;
|
||||
JRI_GetVar_t GetVar;
|
||||
JRI_GetVar_boolean_t GetVar_boolean;
|
||||
JRI_GetVar_byte_t GetVar_byte;
|
||||
JRI_GetVar_char_t GetVar_char;
|
||||
JRI_GetVar_short_t GetVar_short;
|
||||
JRI_GetVar_int_t GetVar_int;
|
||||
JRI_GetVar_long_t GetVar_long;
|
||||
JRI_GetVar_float_t GetVar_float;
|
||||
JRI_GetVar_double_t GetVar_double;
|
||||
JRI_SetVar_t SetVar;
|
||||
JRI_SetVar_boolean_t SetVar_boolean;
|
||||
JRI_SetVar_byte_t SetVar_byte;
|
||||
JRI_SetVar_char_t SetVar_char;
|
||||
JRI_SetVar_short_t SetVar_short;
|
||||
JRI_SetVar_int_t SetVar_int;
|
||||
JRI_SetVar_long_t SetVar_long;
|
||||
JRI_SetVar_float_t SetVar_float;
|
||||
JRI_SetVar_double_t SetVar_double;
|
||||
JRI_StepOver_t StepOver;
|
||||
JRI_StepIn_t StepIn;
|
||||
JRI_StepOut_t StepOut;
|
||||
JRI_Continue_t Continue;
|
||||
JRI_Return_t Return;
|
||||
};
|
||||
|
||||
|
||||
#define JRI_GetFrameCount(env) \
|
||||
((*(env))->GetFrameCount(env))
|
||||
|
||||
#define JRI_GetFrameInfo(env, frameIndex, methodClass, methodIndex, pc, varsCount) \
|
||||
((*(env))->GetFrameInfo(env, frameIndex, methodClass, methodIndex, pc, varsCount))
|
||||
|
||||
#define JRI_GetVarInfo(env, frameIndex, varIndex, name, signature, pos, isArgument, startScope, endScope) \
|
||||
((*(env))->GetVarInfo(env, frameIndex, varIndex, name, signature, pos, isArgument, startScope, endScope))
|
||||
|
||||
#define JRI_GetSourceInfo(env, frameIndex, filename, lineNumber) \
|
||||
((*(env))->GetSourceInfo(env, frameIndex, filename, lineNumber))
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
#define JRI_GetVar(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar(env, frameIndex, varIndex))
|
||||
|
||||
#define JRI_GetVar_boolean(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar_boolean(env, frameIndex, varIndex))
|
||||
|
||||
#define JRI_GetVar_byte(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar_byte(env, frameIndex, varIndex))
|
||||
|
||||
#define JRI_GetVar_char(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar_char(env, frameIndex, varIndex))
|
||||
|
||||
#define JRI_GetVar_short(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar_short(env, frameIndex, varIndex))
|
||||
|
||||
#define JRI_GetVar_int(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar_int(env, frameIndex, varIndex))
|
||||
|
||||
#define JRI_GetVar_long(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar_long(env, frameIndex, varIndex))
|
||||
|
||||
#define JRI_GetVar_float(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar_float(env, frameIndex, varIndex))
|
||||
|
||||
#define JRI_GetVar_double(env, frameIndex, varIndex) \
|
||||
((*(env))->GetVar_double(env, frameIndex, varIndex))
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
#define JRI_SetVar(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar(env, frameIndex, varIndex, value))
|
||||
|
||||
#define JRI_SetVar_boolean(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar_boolean(env, frameIndex, varIndex, value))
|
||||
|
||||
#define JRI_SetVar_byte(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar_byte(env, frameIndex, varIndex, value))
|
||||
|
||||
#define JRI_SetVar_char(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar_char(env, frameIndex, varIndex, value))
|
||||
|
||||
#define JRI_SetVar_short(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar_short(env, frameIndex, varIndex, value))
|
||||
|
||||
#define JRI_SetVar_int(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar_int(env, frameIndex, varIndex, value))
|
||||
|
||||
#define JRI_SetVar_long(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar_long(env, frameIndex, varIndex, value))
|
||||
|
||||
#define JRI_SetVar_float(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar_float(env, frameIndex, varIndex, value))
|
||||
|
||||
#define JRI_SetVar_double(env, frameIndex, varIndex, value) \
|
||||
((*(env))->SetVar_double(env, frameIndex, varIndex, value))
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Controlling Execution */
|
||||
|
||||
#define JRI_StepOver(env) \
|
||||
((*(env))->StepOver(env))
|
||||
|
||||
#define JRI_StepIn(env) \
|
||||
((*(env))->StepIn(env))
|
||||
|
||||
#define JRI_StepOut(env) \
|
||||
((*(env))->StepOut(env))
|
||||
|
||||
#define JRI_Continue(env) \
|
||||
((*(env))->Continue(env))
|
||||
|
||||
#define JRI_Return(env, frameIndex, value) \
|
||||
((*(env))->Return(env, frameIndex, value))
|
||||
|
||||
/*******************************************************************************
|
||||
* Optional Compiling
|
||||
******************************************************************************/
|
||||
|
||||
extern const GUID JRICompilerPkgID;
|
||||
|
||||
typedef struct JRICompilerInterface JRICompilerInterface;
|
||||
typedef const JRICompilerInterface* JRICompilerEnv;
|
||||
|
||||
typedef void
|
||||
(*JRI_CompileClass_t)(JRICompilerEnv* env,
|
||||
const char* classSrc, jsize classSrcLen,
|
||||
jbyte* *resultingClassData, jsize *classDataLen);
|
||||
|
||||
struct JRICompilerInterface {
|
||||
MCOM_QueryInterface_t QueryInterface;
|
||||
MCOM_AddRef_t AddRef;
|
||||
MCOM_Release_t Release;
|
||||
void* reserved3;
|
||||
JRI_CompileClass_t CompileClass;
|
||||
};
|
||||
|
||||
#define JRI_CompileClass(env, classSrc, classSrcLen, resultingClassData, classDataLen) \
|
||||
((*(env))->CompileClass(env, classSrc, classSrcLen, resultingClassData, classDataLen))
|
||||
|
||||
/*******************************************************************************
|
||||
* Optional Expression Evaluation
|
||||
******************************************************************************/
|
||||
|
||||
extern const GUID JRIExprPkgID;
|
||||
|
||||
typedef struct JRIExprInterface JRIExprInterface;
|
||||
typedef const JRIExprInterface* JRIExprEnv;
|
||||
|
||||
typedef jref
|
||||
(*JRI_CompileExpr_t)(JRIExprEnv* env,
|
||||
const char* exprSrc, jsize exprSrcLen);
|
||||
|
||||
typedef jref
|
||||
(*JRI_EvalExpr_t)(JRIExprEnv* env, jref expr);
|
||||
|
||||
struct JRIExprInterface {
|
||||
MCOM_QueryInterface_t QueryInterface;
|
||||
MCOM_AddRef_t AddRef;
|
||||
MCOM_Release_t Release;
|
||||
void* reserved3;
|
||||
JRI_CompileExpr_t CompileExpr;
|
||||
JRI_EvalExpr_t EvalExpr;
|
||||
};
|
||||
|
||||
#define JRI_CompileExpr(env, exprSrc, exprSrcLen) \
|
||||
((*(env))->CompileExpr(env, exprSrc, exprSrcLen))
|
||||
|
||||
#define JRI_EvalExpr(env, expr) \
|
||||
((*(env))->EvalExpr(env, expr))
|
||||
|
||||
/******************************************************************************/
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* JRIEXT_H */
|
||||
/******************************************************************************/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
@@ -15,9 +15,15 @@
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* Java Runtime Interface
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef JRITYPES_H
|
||||
#define JRITYPES_H
|
||||
|
||||
#include "jri_md.h"
|
||||
#include "jni.h"
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
@@ -27,20 +33,192 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef void *JRIGlobalRef;
|
||||
typedef JRIGlobalRef jglobal;
|
||||
/*******************************************************************************
|
||||
* Types
|
||||
******************************************************************************/
|
||||
|
||||
struct JRIEnvInterface;
|
||||
|
||||
typedef void* JRIRef;
|
||||
typedef void* JRIGlobalRef;
|
||||
|
||||
typedef struct jarrayArrayStruct* jarrayArray;
|
||||
typedef jint JRIFieldID;
|
||||
typedef jint JRIMethodID;
|
||||
|
||||
/* synonyms: */
|
||||
typedef JRIGlobalRef jglobal;
|
||||
|
||||
typedef union JRIValue {
|
||||
jbool z;
|
||||
jbyte b;
|
||||
jchar c;
|
||||
jshort s;
|
||||
jint i;
|
||||
jlong l;
|
||||
jfloat f;
|
||||
jdouble d;
|
||||
jref r;
|
||||
} JRIValue;
|
||||
|
||||
typedef enum JRIBoolean {
|
||||
JRIFalse = 0,
|
||||
JRITrue = 1
|
||||
} JRIBoolean;
|
||||
|
||||
typedef enum JRIConstant {
|
||||
JRIUninitialized = -1
|
||||
} JRIConstant;
|
||||
|
||||
/* convenience types (these must be distinct struct types for c++ overloading): */
|
||||
#if 0 /* now in jni.h */
|
||||
typedef struct jbooleanArrayStruct* jbooleanArray;
|
||||
typedef struct jbyteArrayStruct* jbyteArray;
|
||||
typedef struct jcharArrayStruct* jcharArray;
|
||||
typedef struct jshortArrayStruct* jshortArray;
|
||||
typedef struct jintArrayStruct* jintArray;
|
||||
typedef struct jlongArrayStruct* jlongArray;
|
||||
typedef struct jfloatArrayStruct* jfloatArray;
|
||||
typedef struct jdoubleArrayStruct* jdoubleArray;
|
||||
typedef struct jobjectArrayStruct* jobjectArray;
|
||||
#endif
|
||||
typedef struct jstringArrayStruct* jstringArray;
|
||||
typedef struct jarrayArrayStruct* jarrayArray;
|
||||
|
||||
#define JRIConstructorMethodName "<init>"
|
||||
|
||||
/*******************************************************************************
|
||||
* Signature Construction Macros
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
** These macros can be used to construct signature strings. Hopefully their names
|
||||
** are a little easier to remember than the single character they correspond to.
|
||||
** For example, to specify the signature of the method:
|
||||
**
|
||||
** public int read(byte b[], int off, int len);
|
||||
**
|
||||
** you could write something like this in C:
|
||||
**
|
||||
** char* readSig = JRISigMethod(JRISigArray(JRISigByte)
|
||||
** JRISigInt
|
||||
** JRISigInt) JRISigInt;
|
||||
**
|
||||
** Of course, don't put commas between the types.
|
||||
*/
|
||||
#define JRISigArray(T) "[" T
|
||||
#define JRISigByte "B"
|
||||
#define JRISigChar "C"
|
||||
#define JRISigClass(name) "L" name ";"
|
||||
#define JRISigFloat "F"
|
||||
#define JRISigDouble "D"
|
||||
#define JRISigMethod(args) "(" args ")"
|
||||
#define JRISigNoArgs ""
|
||||
#define JRISigInt "I"
|
||||
#define JRISigLong "J"
|
||||
#define JRISigShort "S"
|
||||
#define JRISigVoid "V"
|
||||
#define JRISigBoolean "Z"
|
||||
|
||||
/*******************************************************************************
|
||||
* Environments
|
||||
******************************************************************************/
|
||||
|
||||
extern JRI_PUBLIC_API(const struct JRIEnvInterface**)
|
||||
JRI_GetCurrentEnv(void);
|
||||
|
||||
/*******************************************************************************
|
||||
* Specific Scalar Array Types
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
** The JRI Native Method Interface does not support boolean arrays. This
|
||||
** is to allow Java runtime implementations to optimize boolean array
|
||||
** storage. Using the ScalarArray operations on boolean arrays is bound
|
||||
** to fail, so convert any boolean arrays to byte arrays in Java before
|
||||
** passing them to a native method.
|
||||
*/
|
||||
|
||||
#define JRI_NewByteArray(env, length, initialValues) \
|
||||
JRI_NewScalarArray(env, length, JRISigByte, (jbyte*)(initialValues))
|
||||
#define JRI_GetByteArrayLength(env, array) \
|
||||
JRI_GetScalarArrayLength(env, array)
|
||||
#define JRI_GetByteArrayElements(env, array) \
|
||||
JRI_GetScalarArrayElements(env, array)
|
||||
|
||||
#define JRI_NewCharArray(env, length, initialValues) \
|
||||
JRI_NewScalarArray(env, ((length) * sizeof(jchar)), JRISigChar, (jbyte*)(initialValues))
|
||||
#define JRI_GetCharArrayLength(env, array) \
|
||||
JRI_GetScalarArrayLength(env, array)
|
||||
#define JRI_GetCharArrayElements(env, array) \
|
||||
((jchar*)JRI_GetScalarArrayElements(env, array))
|
||||
|
||||
#define JRI_NewShortArray(env, length, initialValues) \
|
||||
JRI_NewScalarArray(env, ((length) * sizeof(jshort)), JRISigShort, (jbyte*)(initialValues))
|
||||
#define JRI_GetShortArrayLength(env, array) \
|
||||
JRI_GetScalarArrayLength(env, array)
|
||||
#define JRI_GetShortArrayElements(env, array) \
|
||||
((jshort*)JRI_GetScalarArrayElements(env, array))
|
||||
|
||||
#define JRI_NewIntArray(env, length, initialValues) \
|
||||
JRI_NewScalarArray(env, ((length) * sizeof(jint)), JRISigInt, (jbyte*)(initialValues))
|
||||
#define JRI_GetIntArrayLength(env, array) \
|
||||
JRI_GetScalarArrayLength(env, array)
|
||||
#define JRI_GetIntArrayElements(env, array) \
|
||||
((jint*)JRI_GetScalarArrayElements(env, array))
|
||||
|
||||
#define JRI_NewLongArray(env, length, initialValues) \
|
||||
JRI_NewScalarArray(env, ((length) * sizeof(jlong)), JRISigLong, (jbyte*)(initialValues))
|
||||
#define JRI_GetLongArrayLength(env, array) \
|
||||
JRI_GetScalarArrayLength(env, array)
|
||||
#define JRI_GetLongArrayElements(env, array) \
|
||||
((jlong*)JRI_GetScalarArrayElements(env, array))
|
||||
|
||||
#define JRI_NewFloatArray(env, length, initialValues) \
|
||||
JRI_NewScalarArray(env, ((length) * sizeof(jfloat)), JRISigFloat, (jbyte*)(initialValues))
|
||||
#define JRI_GetFloatArrayLength(env, array) \
|
||||
JRI_GetScalarArrayLength(env, array)
|
||||
#define JRI_GetFloatArrayElements(env, array) \
|
||||
((jfloat*)JRI_GetScalarArrayElements(env, array))
|
||||
|
||||
#define JRI_NewDoubleArray(env, length, initialValues) \
|
||||
JRI_NewScalarArray(env, ((length) * sizeof(jdouble)), JRISigDouble, (jbyte*)(initialValues))
|
||||
#define JRI_GetDoubleArrayLength(env, array) \
|
||||
JRI_GetScalarArrayLength(env, array)
|
||||
#define JRI_GetDoubleArrayElements(env, array) \
|
||||
((jdouble*)JRI_GetScalarArrayElements(env, array))
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
** JDK Stuff -- This stuff is still needed while we're using the JDK
|
||||
** dynamic linking strategy to call native methods.
|
||||
*/
|
||||
|
||||
typedef union JRI_JDK_stack_item {
|
||||
/* Non pointer items */
|
||||
jint i;
|
||||
jfloat f;
|
||||
jint o;
|
||||
/* Pointer items */
|
||||
void *h;
|
||||
void *p;
|
||||
unsigned char *addr;
|
||||
#ifdef IS_64
|
||||
double d;
|
||||
long l; /* == 64bits! */
|
||||
#endif
|
||||
} JRI_JDK_stack_item;
|
||||
|
||||
typedef union JRI_JDK_Java8Str {
|
||||
jint x[2];
|
||||
jdouble d;
|
||||
jlong l;
|
||||
void *p;
|
||||
float f;
|
||||
} JRI_JDK_Java8;
|
||||
|
||||
/******************************************************************************/
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* JRITYPES_H */
|
||||
/******************************************************************************/
|
||||
|
||||
Reference in New Issue
Block a user