src/share/vm/prims/jni.h

Sun, 15 Sep 2013 15:28:58 +0200

author
goetz
date
Sun, 15 Sep 2013 15:28:58 +0200
changeset 6470
abe03600372a
parent 4793
499ccc15bbc8
child 6876
710a3c8b516e
permissions
-rw-r--r--

8024468: PPC64 (part 201): cppInterpreter: implement bytecode profiling
Summary: Implement profiling for c2 jit compilation. Also enable new cppInterpreter features.
Reviewed-by: kvn

duke@435 1 /*
bpittore@4793 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
duke@435 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 4 *
duke@435 5 * This code is free software; you can redistribute it and/or modify it
duke@435 6 * under the terms of the GNU General Public License version 2 only, as
trims@1907 7 * published by the Free Software Foundation. Oracle designates this
duke@435 8 * particular file as subject to the "Classpath" exception as provided
trims@1907 9 * by Oracle in the LICENSE file that accompanied this code.
duke@435 10 *
duke@435 11 * This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 14 * version 2 for more details (a copy is included in the LICENSE file that
duke@435 15 * accompanied this code).
duke@435 16 *
duke@435 17 * You should have received a copy of the GNU General Public License version
duke@435 18 * 2 along with this work; if not, write to the Free Software Foundation,
duke@435 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 20 *
trims@1907 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 22 * or visit www.oracle.com if you need additional information or have any
trims@1907 23 * questions.
duke@435 24 */
duke@435 25
duke@435 26 /*
duke@435 27 * We used part of Netscape's Java Runtime Interface (JRI) as the starting
duke@435 28 * point of our design and implementation.
duke@435 29 */
duke@435 30
duke@435 31 /******************************************************************************
duke@435 32 * Java Runtime Interface
duke@435 33 * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
duke@435 34 *****************************************************************************/
duke@435 35
duke@435 36 #ifndef _JAVASOFT_JNI_H_
duke@435 37 #define _JAVASOFT_JNI_H_
duke@435 38
duke@435 39 #include <stdio.h>
duke@435 40 #include <stdarg.h>
duke@435 41
duke@435 42 /* jni_md.h contains the machine-dependent typedefs for jbyte, jint
duke@435 43 and jlong */
duke@435 44
duke@435 45 #include "jni_md.h"
duke@435 46
duke@435 47 #ifdef __cplusplus
duke@435 48 extern "C" {
duke@435 49 #endif
duke@435 50
duke@435 51 /*
duke@435 52 * JNI Types
duke@435 53 */
duke@435 54
duke@435 55 #ifndef JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H
duke@435 56
duke@435 57 typedef unsigned char jboolean;
duke@435 58 typedef unsigned short jchar;
duke@435 59 typedef short jshort;
duke@435 60 typedef float jfloat;
duke@435 61 typedef double jdouble;
duke@435 62
duke@435 63 typedef jint jsize;
duke@435 64
duke@435 65 #ifdef __cplusplus
duke@435 66
duke@435 67 class _jobject {};
duke@435 68 class _jclass : public _jobject {};
duke@435 69 class _jthrowable : public _jobject {};
duke@435 70 class _jstring : public _jobject {};
duke@435 71 class _jarray : public _jobject {};
duke@435 72 class _jbooleanArray : public _jarray {};
duke@435 73 class _jbyteArray : public _jarray {};
duke@435 74 class _jcharArray : public _jarray {};
duke@435 75 class _jshortArray : public _jarray {};
duke@435 76 class _jintArray : public _jarray {};
duke@435 77 class _jlongArray : public _jarray {};
duke@435 78 class _jfloatArray : public _jarray {};
duke@435 79 class _jdoubleArray : public _jarray {};
duke@435 80 class _jobjectArray : public _jarray {};
duke@435 81
duke@435 82 typedef _jobject *jobject;
duke@435 83 typedef _jclass *jclass;
duke@435 84 typedef _jthrowable *jthrowable;
duke@435 85 typedef _jstring *jstring;
duke@435 86 typedef _jarray *jarray;
duke@435 87 typedef _jbooleanArray *jbooleanArray;
duke@435 88 typedef _jbyteArray *jbyteArray;
duke@435 89 typedef _jcharArray *jcharArray;
duke@435 90 typedef _jshortArray *jshortArray;
duke@435 91 typedef _jintArray *jintArray;
duke@435 92 typedef _jlongArray *jlongArray;
duke@435 93 typedef _jfloatArray *jfloatArray;
duke@435 94 typedef _jdoubleArray *jdoubleArray;
duke@435 95 typedef _jobjectArray *jobjectArray;
duke@435 96
duke@435 97 #else
duke@435 98
duke@435 99 struct _jobject;
duke@435 100
duke@435 101 typedef struct _jobject *jobject;
duke@435 102 typedef jobject jclass;
duke@435 103 typedef jobject jthrowable;
duke@435 104 typedef jobject jstring;
duke@435 105 typedef jobject jarray;
duke@435 106 typedef jarray jbooleanArray;
duke@435 107 typedef jarray jbyteArray;
duke@435 108 typedef jarray jcharArray;
duke@435 109 typedef jarray jshortArray;
duke@435 110 typedef jarray jintArray;
duke@435 111 typedef jarray jlongArray;
duke@435 112 typedef jarray jfloatArray;
duke@435 113 typedef jarray jdoubleArray;
duke@435 114 typedef jarray jobjectArray;
duke@435 115
duke@435 116 #endif
duke@435 117
duke@435 118 typedef jobject jweak;
duke@435 119
duke@435 120 typedef union jvalue {
duke@435 121 jboolean z;
duke@435 122 jbyte b;
duke@435 123 jchar c;
duke@435 124 jshort s;
duke@435 125 jint i;
duke@435 126 jlong j;
duke@435 127 jfloat f;
duke@435 128 jdouble d;
duke@435 129 jobject l;
duke@435 130 } jvalue;
duke@435 131
duke@435 132 struct _jfieldID;
duke@435 133 typedef struct _jfieldID *jfieldID;
duke@435 134
duke@435 135 struct _jmethodID;
duke@435 136 typedef struct _jmethodID *jmethodID;
duke@435 137
duke@435 138 /* Return values from jobjectRefType */
duke@435 139 typedef enum _jobjectType {
duke@435 140 JNIInvalidRefType = 0,
duke@435 141 JNILocalRefType = 1,
duke@435 142 JNIGlobalRefType = 2,
duke@435 143 JNIWeakGlobalRefType = 3
duke@435 144 } jobjectRefType;
duke@435 145
duke@435 146
duke@435 147 #endif /* JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H */
duke@435 148
duke@435 149 /*
duke@435 150 * jboolean constants
duke@435 151 */
duke@435 152
duke@435 153 #define JNI_FALSE 0
duke@435 154 #define JNI_TRUE 1
duke@435 155
duke@435 156 /*
duke@435 157 * possible return values for JNI functions.
duke@435 158 */
duke@435 159
duke@435 160 #define JNI_OK 0 /* success */
duke@435 161 #define JNI_ERR (-1) /* unknown error */
duke@435 162 #define JNI_EDETACHED (-2) /* thread detached from the VM */
duke@435 163 #define JNI_EVERSION (-3) /* JNI version error */
duke@435 164 #define JNI_ENOMEM (-4) /* not enough memory */
duke@435 165 #define JNI_EEXIST (-5) /* VM already created */
duke@435 166 #define JNI_EINVAL (-6) /* invalid arguments */
duke@435 167
duke@435 168 /*
duke@435 169 * used in ReleaseScalarArrayElements
duke@435 170 */
duke@435 171
duke@435 172 #define JNI_COMMIT 1
duke@435 173 #define JNI_ABORT 2
duke@435 174
duke@435 175 /*
duke@435 176 * used in RegisterNatives to describe native method name, signature,
duke@435 177 * and function pointer.
duke@435 178 */
duke@435 179
duke@435 180 typedef struct {
duke@435 181 char *name;
duke@435 182 char *signature;
duke@435 183 void *fnPtr;
duke@435 184 } JNINativeMethod;
duke@435 185
duke@435 186 /*
duke@435 187 * JNI Native Method Interface.
duke@435 188 */
duke@435 189
duke@435 190 struct JNINativeInterface_;
duke@435 191
duke@435 192 struct JNIEnv_;
duke@435 193
duke@435 194 #ifdef __cplusplus
duke@435 195 typedef JNIEnv_ JNIEnv;
duke@435 196 #else
duke@435 197 typedef const struct JNINativeInterface_ *JNIEnv;
duke@435 198 #endif
duke@435 199
duke@435 200 /*
duke@435 201 * JNI Invocation Interface.
duke@435 202 */
duke@435 203
duke@435 204 struct JNIInvokeInterface_;
duke@435 205
duke@435 206 struct JavaVM_;
duke@435 207
duke@435 208 #ifdef __cplusplus
duke@435 209 typedef JavaVM_ JavaVM;
duke@435 210 #else
duke@435 211 typedef const struct JNIInvokeInterface_ *JavaVM;
duke@435 212 #endif
duke@435 213
duke@435 214 struct JNINativeInterface_ {
duke@435 215 void *reserved0;
duke@435 216 void *reserved1;
duke@435 217 void *reserved2;
duke@435 218
duke@435 219 void *reserved3;
duke@435 220 jint (JNICALL *GetVersion)(JNIEnv *env);
duke@435 221
duke@435 222 jclass (JNICALL *DefineClass)
duke@435 223 (JNIEnv *env, const char *name, jobject loader, const jbyte *buf,
duke@435 224 jsize len);
duke@435 225 jclass (JNICALL *FindClass)
duke@435 226 (JNIEnv *env, const char *name);
duke@435 227
duke@435 228 jmethodID (JNICALL *FromReflectedMethod)
duke@435 229 (JNIEnv *env, jobject method);
duke@435 230 jfieldID (JNICALL *FromReflectedField)
duke@435 231 (JNIEnv *env, jobject field);
duke@435 232
duke@435 233 jobject (JNICALL *ToReflectedMethod)
duke@435 234 (JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic);
duke@435 235
duke@435 236 jclass (JNICALL *GetSuperclass)
duke@435 237 (JNIEnv *env, jclass sub);
duke@435 238 jboolean (JNICALL *IsAssignableFrom)
duke@435 239 (JNIEnv *env, jclass sub, jclass sup);
duke@435 240
duke@435 241 jobject (JNICALL *ToReflectedField)
duke@435 242 (JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic);
duke@435 243
duke@435 244 jint (JNICALL *Throw)
duke@435 245 (JNIEnv *env, jthrowable obj);
duke@435 246 jint (JNICALL *ThrowNew)
duke@435 247 (JNIEnv *env, jclass clazz, const char *msg);
duke@435 248 jthrowable (JNICALL *ExceptionOccurred)
duke@435 249 (JNIEnv *env);
duke@435 250 void (JNICALL *ExceptionDescribe)
duke@435 251 (JNIEnv *env);
duke@435 252 void (JNICALL *ExceptionClear)
duke@435 253 (JNIEnv *env);
duke@435 254 void (JNICALL *FatalError)
duke@435 255 (JNIEnv *env, const char *msg);
duke@435 256
duke@435 257 jint (JNICALL *PushLocalFrame)
duke@435 258 (JNIEnv *env, jint capacity);
duke@435 259 jobject (JNICALL *PopLocalFrame)
duke@435 260 (JNIEnv *env, jobject result);
duke@435 261
duke@435 262 jobject (JNICALL *NewGlobalRef)
duke@435 263 (JNIEnv *env, jobject lobj);
duke@435 264 void (JNICALL *DeleteGlobalRef)
duke@435 265 (JNIEnv *env, jobject gref);
duke@435 266 void (JNICALL *DeleteLocalRef)
duke@435 267 (JNIEnv *env, jobject obj);
duke@435 268 jboolean (JNICALL *IsSameObject)
duke@435 269 (JNIEnv *env, jobject obj1, jobject obj2);
duke@435 270 jobject (JNICALL *NewLocalRef)
duke@435 271 (JNIEnv *env, jobject ref);
duke@435 272 jint (JNICALL *EnsureLocalCapacity)
duke@435 273 (JNIEnv *env, jint capacity);
duke@435 274
duke@435 275 jobject (JNICALL *AllocObject)
duke@435 276 (JNIEnv *env, jclass clazz);
duke@435 277 jobject (JNICALL *NewObject)
duke@435 278 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 279 jobject (JNICALL *NewObjectV)
duke@435 280 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 281 jobject (JNICALL *NewObjectA)
duke@435 282 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 283
duke@435 284 jclass (JNICALL *GetObjectClass)
duke@435 285 (JNIEnv *env, jobject obj);
duke@435 286 jboolean (JNICALL *IsInstanceOf)
duke@435 287 (JNIEnv *env, jobject obj, jclass clazz);
duke@435 288
duke@435 289 jmethodID (JNICALL *GetMethodID)
duke@435 290 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
duke@435 291
duke@435 292 jobject (JNICALL *CallObjectMethod)
duke@435 293 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 294 jobject (JNICALL *CallObjectMethodV)
duke@435 295 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 296 jobject (JNICALL *CallObjectMethodA)
duke@435 297 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
duke@435 298
duke@435 299 jboolean (JNICALL *CallBooleanMethod)
duke@435 300 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 301 jboolean (JNICALL *CallBooleanMethodV)
duke@435 302 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 303 jboolean (JNICALL *CallBooleanMethodA)
duke@435 304 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
duke@435 305
duke@435 306 jbyte (JNICALL *CallByteMethod)
duke@435 307 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 308 jbyte (JNICALL *CallByteMethodV)
duke@435 309 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 310 jbyte (JNICALL *CallByteMethodA)
duke@435 311 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
duke@435 312
duke@435 313 jchar (JNICALL *CallCharMethod)
duke@435 314 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 315 jchar (JNICALL *CallCharMethodV)
duke@435 316 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 317 jchar (JNICALL *CallCharMethodA)
duke@435 318 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
duke@435 319
duke@435 320 jshort (JNICALL *CallShortMethod)
duke@435 321 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 322 jshort (JNICALL *CallShortMethodV)
duke@435 323 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 324 jshort (JNICALL *CallShortMethodA)
duke@435 325 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
duke@435 326
duke@435 327 jint (JNICALL *CallIntMethod)
duke@435 328 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 329 jint (JNICALL *CallIntMethodV)
duke@435 330 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 331 jint (JNICALL *CallIntMethodA)
duke@435 332 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
duke@435 333
duke@435 334 jlong (JNICALL *CallLongMethod)
duke@435 335 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 336 jlong (JNICALL *CallLongMethodV)
duke@435 337 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 338 jlong (JNICALL *CallLongMethodA)
duke@435 339 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
duke@435 340
duke@435 341 jfloat (JNICALL *CallFloatMethod)
duke@435 342 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 343 jfloat (JNICALL *CallFloatMethodV)
duke@435 344 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 345 jfloat (JNICALL *CallFloatMethodA)
duke@435 346 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
duke@435 347
duke@435 348 jdouble (JNICALL *CallDoubleMethod)
duke@435 349 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 350 jdouble (JNICALL *CallDoubleMethodV)
duke@435 351 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 352 jdouble (JNICALL *CallDoubleMethodA)
duke@435 353 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
duke@435 354
duke@435 355 void (JNICALL *CallVoidMethod)
duke@435 356 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
duke@435 357 void (JNICALL *CallVoidMethodV)
duke@435 358 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
duke@435 359 void (JNICALL *CallVoidMethodA)
duke@435 360 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
duke@435 361
duke@435 362 jobject (JNICALL *CallNonvirtualObjectMethod)
duke@435 363 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 364 jobject (JNICALL *CallNonvirtualObjectMethodV)
duke@435 365 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 366 va_list args);
duke@435 367 jobject (JNICALL *CallNonvirtualObjectMethodA)
duke@435 368 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 369 const jvalue * args);
duke@435 370
duke@435 371 jboolean (JNICALL *CallNonvirtualBooleanMethod)
duke@435 372 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 373 jboolean (JNICALL *CallNonvirtualBooleanMethodV)
duke@435 374 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 375 va_list args);
duke@435 376 jboolean (JNICALL *CallNonvirtualBooleanMethodA)
duke@435 377 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 378 const jvalue * args);
duke@435 379
duke@435 380 jbyte (JNICALL *CallNonvirtualByteMethod)
duke@435 381 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 382 jbyte (JNICALL *CallNonvirtualByteMethodV)
duke@435 383 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 384 va_list args);
duke@435 385 jbyte (JNICALL *CallNonvirtualByteMethodA)
duke@435 386 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 387 const jvalue *args);
duke@435 388
duke@435 389 jchar (JNICALL *CallNonvirtualCharMethod)
duke@435 390 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 391 jchar (JNICALL *CallNonvirtualCharMethodV)
duke@435 392 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 393 va_list args);
duke@435 394 jchar (JNICALL *CallNonvirtualCharMethodA)
duke@435 395 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 396 const jvalue *args);
duke@435 397
duke@435 398 jshort (JNICALL *CallNonvirtualShortMethod)
duke@435 399 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 400 jshort (JNICALL *CallNonvirtualShortMethodV)
duke@435 401 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 402 va_list args);
duke@435 403 jshort (JNICALL *CallNonvirtualShortMethodA)
duke@435 404 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 405 const jvalue *args);
duke@435 406
duke@435 407 jint (JNICALL *CallNonvirtualIntMethod)
duke@435 408 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 409 jint (JNICALL *CallNonvirtualIntMethodV)
duke@435 410 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 411 va_list args);
duke@435 412 jint (JNICALL *CallNonvirtualIntMethodA)
duke@435 413 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 414 const jvalue *args);
duke@435 415
duke@435 416 jlong (JNICALL *CallNonvirtualLongMethod)
duke@435 417 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 418 jlong (JNICALL *CallNonvirtualLongMethodV)
duke@435 419 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 420 va_list args);
duke@435 421 jlong (JNICALL *CallNonvirtualLongMethodA)
duke@435 422 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 423 const jvalue *args);
duke@435 424
duke@435 425 jfloat (JNICALL *CallNonvirtualFloatMethod)
duke@435 426 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 427 jfloat (JNICALL *CallNonvirtualFloatMethodV)
duke@435 428 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 429 va_list args);
duke@435 430 jfloat (JNICALL *CallNonvirtualFloatMethodA)
duke@435 431 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 432 const jvalue *args);
duke@435 433
duke@435 434 jdouble (JNICALL *CallNonvirtualDoubleMethod)
duke@435 435 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 436 jdouble (JNICALL *CallNonvirtualDoubleMethodV)
duke@435 437 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 438 va_list args);
duke@435 439 jdouble (JNICALL *CallNonvirtualDoubleMethodA)
duke@435 440 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 441 const jvalue *args);
duke@435 442
duke@435 443 void (JNICALL *CallNonvirtualVoidMethod)
duke@435 444 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
duke@435 445 void (JNICALL *CallNonvirtualVoidMethodV)
duke@435 446 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 447 va_list args);
duke@435 448 void (JNICALL *CallNonvirtualVoidMethodA)
duke@435 449 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
duke@435 450 const jvalue * args);
duke@435 451
duke@435 452 jfieldID (JNICALL *GetFieldID)
duke@435 453 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
duke@435 454
duke@435 455 jobject (JNICALL *GetObjectField)
duke@435 456 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 457 jboolean (JNICALL *GetBooleanField)
duke@435 458 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 459 jbyte (JNICALL *GetByteField)
duke@435 460 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 461 jchar (JNICALL *GetCharField)
duke@435 462 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 463 jshort (JNICALL *GetShortField)
duke@435 464 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 465 jint (JNICALL *GetIntField)
duke@435 466 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 467 jlong (JNICALL *GetLongField)
duke@435 468 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 469 jfloat (JNICALL *GetFloatField)
duke@435 470 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 471 jdouble (JNICALL *GetDoubleField)
duke@435 472 (JNIEnv *env, jobject obj, jfieldID fieldID);
duke@435 473
duke@435 474 void (JNICALL *SetObjectField)
duke@435 475 (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
duke@435 476 void (JNICALL *SetBooleanField)
duke@435 477 (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
duke@435 478 void (JNICALL *SetByteField)
duke@435 479 (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
duke@435 480 void (JNICALL *SetCharField)
duke@435 481 (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
duke@435 482 void (JNICALL *SetShortField)
duke@435 483 (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
duke@435 484 void (JNICALL *SetIntField)
duke@435 485 (JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
duke@435 486 void (JNICALL *SetLongField)
duke@435 487 (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
duke@435 488 void (JNICALL *SetFloatField)
duke@435 489 (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
duke@435 490 void (JNICALL *SetDoubleField)
duke@435 491 (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
duke@435 492
duke@435 493 jmethodID (JNICALL *GetStaticMethodID)
duke@435 494 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
duke@435 495
duke@435 496 jobject (JNICALL *CallStaticObjectMethod)
duke@435 497 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 498 jobject (JNICALL *CallStaticObjectMethodV)
duke@435 499 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 500 jobject (JNICALL *CallStaticObjectMethodA)
duke@435 501 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 502
duke@435 503 jboolean (JNICALL *CallStaticBooleanMethod)
duke@435 504 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 505 jboolean (JNICALL *CallStaticBooleanMethodV)
duke@435 506 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 507 jboolean (JNICALL *CallStaticBooleanMethodA)
duke@435 508 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 509
duke@435 510 jbyte (JNICALL *CallStaticByteMethod)
duke@435 511 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 512 jbyte (JNICALL *CallStaticByteMethodV)
duke@435 513 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 514 jbyte (JNICALL *CallStaticByteMethodA)
duke@435 515 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 516
duke@435 517 jchar (JNICALL *CallStaticCharMethod)
duke@435 518 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 519 jchar (JNICALL *CallStaticCharMethodV)
duke@435 520 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 521 jchar (JNICALL *CallStaticCharMethodA)
duke@435 522 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 523
duke@435 524 jshort (JNICALL *CallStaticShortMethod)
duke@435 525 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 526 jshort (JNICALL *CallStaticShortMethodV)
duke@435 527 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 528 jshort (JNICALL *CallStaticShortMethodA)
duke@435 529 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 530
duke@435 531 jint (JNICALL *CallStaticIntMethod)
duke@435 532 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 533 jint (JNICALL *CallStaticIntMethodV)
duke@435 534 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 535 jint (JNICALL *CallStaticIntMethodA)
duke@435 536 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 537
duke@435 538 jlong (JNICALL *CallStaticLongMethod)
duke@435 539 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 540 jlong (JNICALL *CallStaticLongMethodV)
duke@435 541 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 542 jlong (JNICALL *CallStaticLongMethodA)
duke@435 543 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 544
duke@435 545 jfloat (JNICALL *CallStaticFloatMethod)
duke@435 546 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 547 jfloat (JNICALL *CallStaticFloatMethodV)
duke@435 548 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 549 jfloat (JNICALL *CallStaticFloatMethodA)
duke@435 550 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 551
duke@435 552 jdouble (JNICALL *CallStaticDoubleMethod)
duke@435 553 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
duke@435 554 jdouble (JNICALL *CallStaticDoubleMethodV)
duke@435 555 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
duke@435 556 jdouble (JNICALL *CallStaticDoubleMethodA)
duke@435 557 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
duke@435 558
duke@435 559 void (JNICALL *CallStaticVoidMethod)
duke@435 560 (JNIEnv *env, jclass cls, jmethodID methodID, ...);
duke@435 561 void (JNICALL *CallStaticVoidMethodV)
duke@435 562 (JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
duke@435 563 void (JNICALL *CallStaticVoidMethodA)
duke@435 564 (JNIEnv *env, jclass cls, jmethodID methodID, const jvalue * args);
duke@435 565
duke@435 566 jfieldID (JNICALL *GetStaticFieldID)
duke@435 567 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
duke@435 568 jobject (JNICALL *GetStaticObjectField)
duke@435 569 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 570 jboolean (JNICALL *GetStaticBooleanField)
duke@435 571 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 572 jbyte (JNICALL *GetStaticByteField)
duke@435 573 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 574 jchar (JNICALL *GetStaticCharField)
duke@435 575 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 576 jshort (JNICALL *GetStaticShortField)
duke@435 577 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 578 jint (JNICALL *GetStaticIntField)
duke@435 579 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 580 jlong (JNICALL *GetStaticLongField)
duke@435 581 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 582 jfloat (JNICALL *GetStaticFloatField)
duke@435 583 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 584 jdouble (JNICALL *GetStaticDoubleField)
duke@435 585 (JNIEnv *env, jclass clazz, jfieldID fieldID);
duke@435 586
duke@435 587 void (JNICALL *SetStaticObjectField)
duke@435 588 (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
duke@435 589 void (JNICALL *SetStaticBooleanField)
duke@435 590 (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
duke@435 591 void (JNICALL *SetStaticByteField)
duke@435 592 (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
duke@435 593 void (JNICALL *SetStaticCharField)
duke@435 594 (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
duke@435 595 void (JNICALL *SetStaticShortField)
duke@435 596 (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
duke@435 597 void (JNICALL *SetStaticIntField)
duke@435 598 (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
duke@435 599 void (JNICALL *SetStaticLongField)
duke@435 600 (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
duke@435 601 void (JNICALL *SetStaticFloatField)
duke@435 602 (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
duke@435 603 void (JNICALL *SetStaticDoubleField)
duke@435 604 (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
duke@435 605
duke@435 606 jstring (JNICALL *NewString)
duke@435 607 (JNIEnv *env, const jchar *unicode, jsize len);
duke@435 608 jsize (JNICALL *GetStringLength)
duke@435 609 (JNIEnv *env, jstring str);
duke@435 610 const jchar *(JNICALL *GetStringChars)
duke@435 611 (JNIEnv *env, jstring str, jboolean *isCopy);
duke@435 612 void (JNICALL *ReleaseStringChars)
duke@435 613 (JNIEnv *env, jstring str, const jchar *chars);
duke@435 614
duke@435 615 jstring (JNICALL *NewStringUTF)
duke@435 616 (JNIEnv *env, const char *utf);
duke@435 617 jsize (JNICALL *GetStringUTFLength)
duke@435 618 (JNIEnv *env, jstring str);
duke@435 619 const char* (JNICALL *GetStringUTFChars)
duke@435 620 (JNIEnv *env, jstring str, jboolean *isCopy);
duke@435 621 void (JNICALL *ReleaseStringUTFChars)
duke@435 622 (JNIEnv *env, jstring str, const char* chars);
duke@435 623
duke@435 624
duke@435 625 jsize (JNICALL *GetArrayLength)
duke@435 626 (JNIEnv *env, jarray array);
duke@435 627
duke@435 628 jobjectArray (JNICALL *NewObjectArray)
duke@435 629 (JNIEnv *env, jsize len, jclass clazz, jobject init);
duke@435 630 jobject (JNICALL *GetObjectArrayElement)
duke@435 631 (JNIEnv *env, jobjectArray array, jsize index);
duke@435 632 void (JNICALL *SetObjectArrayElement)
duke@435 633 (JNIEnv *env, jobjectArray array, jsize index, jobject val);
duke@435 634
duke@435 635 jbooleanArray (JNICALL *NewBooleanArray)
duke@435 636 (JNIEnv *env, jsize len);
duke@435 637 jbyteArray (JNICALL *NewByteArray)
duke@435 638 (JNIEnv *env, jsize len);
duke@435 639 jcharArray (JNICALL *NewCharArray)
duke@435 640 (JNIEnv *env, jsize len);
duke@435 641 jshortArray (JNICALL *NewShortArray)
duke@435 642 (JNIEnv *env, jsize len);
duke@435 643 jintArray (JNICALL *NewIntArray)
duke@435 644 (JNIEnv *env, jsize len);
duke@435 645 jlongArray (JNICALL *NewLongArray)
duke@435 646 (JNIEnv *env, jsize len);
duke@435 647 jfloatArray (JNICALL *NewFloatArray)
duke@435 648 (JNIEnv *env, jsize len);
duke@435 649 jdoubleArray (JNICALL *NewDoubleArray)
duke@435 650 (JNIEnv *env, jsize len);
duke@435 651
duke@435 652 jboolean * (JNICALL *GetBooleanArrayElements)
duke@435 653 (JNIEnv *env, jbooleanArray array, jboolean *isCopy);
duke@435 654 jbyte * (JNICALL *GetByteArrayElements)
duke@435 655 (JNIEnv *env, jbyteArray array, jboolean *isCopy);
duke@435 656 jchar * (JNICALL *GetCharArrayElements)
duke@435 657 (JNIEnv *env, jcharArray array, jboolean *isCopy);
duke@435 658 jshort * (JNICALL *GetShortArrayElements)
duke@435 659 (JNIEnv *env, jshortArray array, jboolean *isCopy);
duke@435 660 jint * (JNICALL *GetIntArrayElements)
duke@435 661 (JNIEnv *env, jintArray array, jboolean *isCopy);
duke@435 662 jlong * (JNICALL *GetLongArrayElements)
duke@435 663 (JNIEnv *env, jlongArray array, jboolean *isCopy);
duke@435 664 jfloat * (JNICALL *GetFloatArrayElements)
duke@435 665 (JNIEnv *env, jfloatArray array, jboolean *isCopy);
duke@435 666 jdouble * (JNICALL *GetDoubleArrayElements)
duke@435 667 (JNIEnv *env, jdoubleArray array, jboolean *isCopy);
duke@435 668
duke@435 669 void (JNICALL *ReleaseBooleanArrayElements)
duke@435 670 (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
duke@435 671 void (JNICALL *ReleaseByteArrayElements)
duke@435 672 (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
duke@435 673 void (JNICALL *ReleaseCharArrayElements)
duke@435 674 (JNIEnv *env, jcharArray array, jchar *elems, jint mode);
duke@435 675 void (JNICALL *ReleaseShortArrayElements)
duke@435 676 (JNIEnv *env, jshortArray array, jshort *elems, jint mode);
duke@435 677 void (JNICALL *ReleaseIntArrayElements)
duke@435 678 (JNIEnv *env, jintArray array, jint *elems, jint mode);
duke@435 679 void (JNICALL *ReleaseLongArrayElements)
duke@435 680 (JNIEnv *env, jlongArray array, jlong *elems, jint mode);
duke@435 681 void (JNICALL *ReleaseFloatArrayElements)
duke@435 682 (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
duke@435 683 void (JNICALL *ReleaseDoubleArrayElements)
duke@435 684 (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
duke@435 685
duke@435 686 void (JNICALL *GetBooleanArrayRegion)
duke@435 687 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
duke@435 688 void (JNICALL *GetByteArrayRegion)
duke@435 689 (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
duke@435 690 void (JNICALL *GetCharArrayRegion)
duke@435 691 (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
duke@435 692 void (JNICALL *GetShortArrayRegion)
duke@435 693 (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
duke@435 694 void (JNICALL *GetIntArrayRegion)
duke@435 695 (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
duke@435 696 void (JNICALL *GetLongArrayRegion)
duke@435 697 (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
duke@435 698 void (JNICALL *GetFloatArrayRegion)
duke@435 699 (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
duke@435 700 void (JNICALL *GetDoubleArrayRegion)
duke@435 701 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
duke@435 702
duke@435 703 void (JNICALL *SetBooleanArrayRegion)
duke@435 704 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, const jboolean *buf);
duke@435 705 void (JNICALL *SetByteArrayRegion)
duke@435 706 (JNIEnv *env, jbyteArray array, jsize start, jsize len, const jbyte *buf);
duke@435 707 void (JNICALL *SetCharArrayRegion)
duke@435 708 (JNIEnv *env, jcharArray array, jsize start, jsize len, const jchar *buf);
duke@435 709 void (JNICALL *SetShortArrayRegion)
duke@435 710 (JNIEnv *env, jshortArray array, jsize start, jsize len, const jshort *buf);
duke@435 711 void (JNICALL *SetIntArrayRegion)
duke@435 712 (JNIEnv *env, jintArray array, jsize start, jsize len, const jint *buf);
duke@435 713 void (JNICALL *SetLongArrayRegion)
duke@435 714 (JNIEnv *env, jlongArray array, jsize start, jsize len, const jlong *buf);
duke@435 715 void (JNICALL *SetFloatArrayRegion)
duke@435 716 (JNIEnv *env, jfloatArray array, jsize start, jsize len, const jfloat *buf);
duke@435 717 void (JNICALL *SetDoubleArrayRegion)
duke@435 718 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, const jdouble *buf);
duke@435 719
duke@435 720 jint (JNICALL *RegisterNatives)
duke@435 721 (JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
duke@435 722 jint nMethods);
duke@435 723 jint (JNICALL *UnregisterNatives)
duke@435 724 (JNIEnv *env, jclass clazz);
duke@435 725
duke@435 726 jint (JNICALL *MonitorEnter)
duke@435 727 (JNIEnv *env, jobject obj);
duke@435 728 jint (JNICALL *MonitorExit)
duke@435 729 (JNIEnv *env, jobject obj);
duke@435 730
duke@435 731 jint (JNICALL *GetJavaVM)
duke@435 732 (JNIEnv *env, JavaVM **vm);
duke@435 733
duke@435 734 void (JNICALL *GetStringRegion)
duke@435 735 (JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf);
duke@435 736 void (JNICALL *GetStringUTFRegion)
duke@435 737 (JNIEnv *env, jstring str, jsize start, jsize len, char *buf);
duke@435 738
duke@435 739 void * (JNICALL *GetPrimitiveArrayCritical)
duke@435 740 (JNIEnv *env, jarray array, jboolean *isCopy);
duke@435 741 void (JNICALL *ReleasePrimitiveArrayCritical)
duke@435 742 (JNIEnv *env, jarray array, void *carray, jint mode);
duke@435 743
duke@435 744 const jchar * (JNICALL *GetStringCritical)
duke@435 745 (JNIEnv *env, jstring string, jboolean *isCopy);
duke@435 746 void (JNICALL *ReleaseStringCritical)
duke@435 747 (JNIEnv *env, jstring string, const jchar *cstring);
duke@435 748
duke@435 749 jweak (JNICALL *NewWeakGlobalRef)
duke@435 750 (JNIEnv *env, jobject obj);
duke@435 751 void (JNICALL *DeleteWeakGlobalRef)
duke@435 752 (JNIEnv *env, jweak ref);
duke@435 753
duke@435 754 jboolean (JNICALL *ExceptionCheck)
duke@435 755 (JNIEnv *env);
duke@435 756
duke@435 757 jobject (JNICALL *NewDirectByteBuffer)
duke@435 758 (JNIEnv* env, void* address, jlong capacity);
duke@435 759 void* (JNICALL *GetDirectBufferAddress)
duke@435 760 (JNIEnv* env, jobject buf);
duke@435 761 jlong (JNICALL *GetDirectBufferCapacity)
duke@435 762 (JNIEnv* env, jobject buf);
duke@435 763
duke@435 764 /* New JNI 1.6 Features */
duke@435 765
duke@435 766 jobjectRefType (JNICALL *GetObjectRefType)
duke@435 767 (JNIEnv* env, jobject obj);
duke@435 768 };
duke@435 769
duke@435 770 /*
duke@435 771 * We use inlined functions for C++ so that programmers can write:
duke@435 772 *
duke@435 773 * env->FindClass("java/lang/String")
duke@435 774 *
duke@435 775 * in C++ rather than:
duke@435 776 *
duke@435 777 * (*env)->FindClass(env, "java/lang/String")
duke@435 778 *
duke@435 779 * in C.
duke@435 780 */
duke@435 781
duke@435 782 struct JNIEnv_ {
duke@435 783 const struct JNINativeInterface_ *functions;
duke@435 784 #ifdef __cplusplus
duke@435 785
duke@435 786 jint GetVersion() {
duke@435 787 return functions->GetVersion(this);
duke@435 788 }
duke@435 789 jclass DefineClass(const char *name, jobject loader, const jbyte *buf,
duke@435 790 jsize len) {
duke@435 791 return functions->DefineClass(this, name, loader, buf, len);
duke@435 792 }
duke@435 793 jclass FindClass(const char *name) {
duke@435 794 return functions->FindClass(this, name);
duke@435 795 }
duke@435 796 jmethodID FromReflectedMethod(jobject method) {
duke@435 797 return functions->FromReflectedMethod(this,method);
duke@435 798 }
duke@435 799 jfieldID FromReflectedField(jobject field) {
duke@435 800 return functions->FromReflectedField(this,field);
duke@435 801 }
duke@435 802
duke@435 803 jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) {
duke@435 804 return functions->ToReflectedMethod(this, cls, methodID, isStatic);
duke@435 805 }
duke@435 806
duke@435 807 jclass GetSuperclass(jclass sub) {
duke@435 808 return functions->GetSuperclass(this, sub);
duke@435 809 }
duke@435 810 jboolean IsAssignableFrom(jclass sub, jclass sup) {
duke@435 811 return functions->IsAssignableFrom(this, sub, sup);
duke@435 812 }
duke@435 813
duke@435 814 jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) {
duke@435 815 return functions->ToReflectedField(this,cls,fieldID,isStatic);
duke@435 816 }
duke@435 817
duke@435 818 jint Throw(jthrowable obj) {
duke@435 819 return functions->Throw(this, obj);
duke@435 820 }
duke@435 821 jint ThrowNew(jclass clazz, const char *msg) {
duke@435 822 return functions->ThrowNew(this, clazz, msg);
duke@435 823 }
duke@435 824 jthrowable ExceptionOccurred() {
duke@435 825 return functions->ExceptionOccurred(this);
duke@435 826 }
duke@435 827 void ExceptionDescribe() {
duke@435 828 functions->ExceptionDescribe(this);
duke@435 829 }
duke@435 830 void ExceptionClear() {
duke@435 831 functions->ExceptionClear(this);
duke@435 832 }
duke@435 833 void FatalError(const char *msg) {
duke@435 834 functions->FatalError(this, msg);
duke@435 835 }
duke@435 836
duke@435 837 jint PushLocalFrame(jint capacity) {
duke@435 838 return functions->PushLocalFrame(this,capacity);
duke@435 839 }
duke@435 840 jobject PopLocalFrame(jobject result) {
duke@435 841 return functions->PopLocalFrame(this,result);
duke@435 842 }
duke@435 843
duke@435 844 jobject NewGlobalRef(jobject lobj) {
duke@435 845 return functions->NewGlobalRef(this,lobj);
duke@435 846 }
duke@435 847 void DeleteGlobalRef(jobject gref) {
duke@435 848 functions->DeleteGlobalRef(this,gref);
duke@435 849 }
duke@435 850 void DeleteLocalRef(jobject obj) {
duke@435 851 functions->DeleteLocalRef(this, obj);
duke@435 852 }
duke@435 853
duke@435 854 jboolean IsSameObject(jobject obj1, jobject obj2) {
duke@435 855 return functions->IsSameObject(this,obj1,obj2);
duke@435 856 }
duke@435 857
duke@435 858 jobject NewLocalRef(jobject ref) {
duke@435 859 return functions->NewLocalRef(this,ref);
duke@435 860 }
duke@435 861 jint EnsureLocalCapacity(jint capacity) {
duke@435 862 return functions->EnsureLocalCapacity(this,capacity);
duke@435 863 }
duke@435 864
duke@435 865 jobject AllocObject(jclass clazz) {
duke@435 866 return functions->AllocObject(this,clazz);
duke@435 867 }
duke@435 868 jobject NewObject(jclass clazz, jmethodID methodID, ...) {
duke@435 869 va_list args;
duke@435 870 jobject result;
duke@435 871 va_start(args, methodID);
duke@435 872 result = functions->NewObjectV(this,clazz,methodID,args);
duke@435 873 va_end(args);
duke@435 874 return result;
duke@435 875 }
duke@435 876 jobject NewObjectV(jclass clazz, jmethodID methodID,
duke@435 877 va_list args) {
duke@435 878 return functions->NewObjectV(this,clazz,methodID,args);
duke@435 879 }
duke@435 880 jobject NewObjectA(jclass clazz, jmethodID methodID,
duke@435 881 const jvalue *args) {
duke@435 882 return functions->NewObjectA(this,clazz,methodID,args);
duke@435 883 }
duke@435 884
duke@435 885 jclass GetObjectClass(jobject obj) {
duke@435 886 return functions->GetObjectClass(this,obj);
duke@435 887 }
duke@435 888 jboolean IsInstanceOf(jobject obj, jclass clazz) {
duke@435 889 return functions->IsInstanceOf(this,obj,clazz);
duke@435 890 }
duke@435 891
duke@435 892 jmethodID GetMethodID(jclass clazz, const char *name,
duke@435 893 const char *sig) {
duke@435 894 return functions->GetMethodID(this,clazz,name,sig);
duke@435 895 }
duke@435 896
duke@435 897 jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {
duke@435 898 va_list args;
duke@435 899 jobject result;
duke@435 900 va_start(args,methodID);
duke@435 901 result = functions->CallObjectMethodV(this,obj,methodID,args);
duke@435 902 va_end(args);
duke@435 903 return result;
duke@435 904 }
duke@435 905 jobject CallObjectMethodV(jobject obj, jmethodID methodID,
duke@435 906 va_list args) {
duke@435 907 return functions->CallObjectMethodV(this,obj,methodID,args);
duke@435 908 }
duke@435 909 jobject CallObjectMethodA(jobject obj, jmethodID methodID,
duke@435 910 const jvalue * args) {
duke@435 911 return functions->CallObjectMethodA(this,obj,methodID,args);
duke@435 912 }
duke@435 913
duke@435 914 jboolean CallBooleanMethod(jobject obj,
duke@435 915 jmethodID methodID, ...) {
duke@435 916 va_list args;
duke@435 917 jboolean result;
duke@435 918 va_start(args,methodID);
duke@435 919 result = functions->CallBooleanMethodV(this,obj,methodID,args);
duke@435 920 va_end(args);
duke@435 921 return result;
duke@435 922 }
duke@435 923 jboolean CallBooleanMethodV(jobject obj, jmethodID methodID,
duke@435 924 va_list args) {
duke@435 925 return functions->CallBooleanMethodV(this,obj,methodID,args);
duke@435 926 }
duke@435 927 jboolean CallBooleanMethodA(jobject obj, jmethodID methodID,
duke@435 928 const jvalue * args) {
duke@435 929 return functions->CallBooleanMethodA(this,obj,methodID, args);
duke@435 930 }
duke@435 931
duke@435 932 jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) {
duke@435 933 va_list args;
duke@435 934 jbyte result;
duke@435 935 va_start(args,methodID);
duke@435 936 result = functions->CallByteMethodV(this,obj,methodID,args);
duke@435 937 va_end(args);
duke@435 938 return result;
duke@435 939 }
duke@435 940 jbyte CallByteMethodV(jobject obj, jmethodID methodID,
duke@435 941 va_list args) {
duke@435 942 return functions->CallByteMethodV(this,obj,methodID,args);
duke@435 943 }
duke@435 944 jbyte CallByteMethodA(jobject obj, jmethodID methodID,
duke@435 945 const jvalue * args) {
duke@435 946 return functions->CallByteMethodA(this,obj,methodID,args);
duke@435 947 }
duke@435 948
duke@435 949 jchar CallCharMethod(jobject obj, jmethodID methodID, ...) {
duke@435 950 va_list args;
duke@435 951 jchar result;
duke@435 952 va_start(args,methodID);
duke@435 953 result = functions->CallCharMethodV(this,obj,methodID,args);
duke@435 954 va_end(args);
duke@435 955 return result;
duke@435 956 }
duke@435 957 jchar CallCharMethodV(jobject obj, jmethodID methodID,
duke@435 958 va_list args) {
duke@435 959 return functions->CallCharMethodV(this,obj,methodID,args);
duke@435 960 }
duke@435 961 jchar CallCharMethodA(jobject obj, jmethodID methodID,
duke@435 962 const jvalue * args) {
duke@435 963 return functions->CallCharMethodA(this,obj,methodID,args);
duke@435 964 }
duke@435 965
duke@435 966 jshort CallShortMethod(jobject obj, jmethodID methodID, ...) {
duke@435 967 va_list args;
duke@435 968 jshort result;
duke@435 969 va_start(args,methodID);
duke@435 970 result = functions->CallShortMethodV(this,obj,methodID,args);
duke@435 971 va_end(args);
duke@435 972 return result;
duke@435 973 }
duke@435 974 jshort CallShortMethodV(jobject obj, jmethodID methodID,
duke@435 975 va_list args) {
duke@435 976 return functions->CallShortMethodV(this,obj,methodID,args);
duke@435 977 }
duke@435 978 jshort CallShortMethodA(jobject obj, jmethodID methodID,
duke@435 979 const jvalue * args) {
duke@435 980 return functions->CallShortMethodA(this,obj,methodID,args);
duke@435 981 }
duke@435 982
duke@435 983 jint CallIntMethod(jobject obj, jmethodID methodID, ...) {
duke@435 984 va_list args;
duke@435 985 jint result;
duke@435 986 va_start(args,methodID);
duke@435 987 result = functions->CallIntMethodV(this,obj,methodID,args);
duke@435 988 va_end(args);
duke@435 989 return result;
duke@435 990 }
duke@435 991 jint CallIntMethodV(jobject obj, jmethodID methodID,
duke@435 992 va_list args) {
duke@435 993 return functions->CallIntMethodV(this,obj,methodID,args);
duke@435 994 }
duke@435 995 jint CallIntMethodA(jobject obj, jmethodID methodID,
duke@435 996 const jvalue * args) {
duke@435 997 return functions->CallIntMethodA(this,obj,methodID,args);
duke@435 998 }
duke@435 999
duke@435 1000 jlong CallLongMethod(jobject obj, jmethodID methodID, ...) {
duke@435 1001 va_list args;
duke@435 1002 jlong result;
duke@435 1003 va_start(args,methodID);
duke@435 1004 result = functions->CallLongMethodV(this,obj,methodID,args);
duke@435 1005 va_end(args);
duke@435 1006 return result;
duke@435 1007 }
duke@435 1008 jlong CallLongMethodV(jobject obj, jmethodID methodID,
duke@435 1009 va_list args) {
duke@435 1010 return functions->CallLongMethodV(this,obj,methodID,args);
duke@435 1011 }
duke@435 1012 jlong CallLongMethodA(jobject obj, jmethodID methodID,
duke@435 1013 const jvalue * args) {
duke@435 1014 return functions->CallLongMethodA(this,obj,methodID,args);
duke@435 1015 }
duke@435 1016
duke@435 1017 jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) {
duke@435 1018 va_list args;
duke@435 1019 jfloat result;
duke@435 1020 va_start(args,methodID);
duke@435 1021 result = functions->CallFloatMethodV(this,obj,methodID,args);
duke@435 1022 va_end(args);
duke@435 1023 return result;
duke@435 1024 }
duke@435 1025 jfloat CallFloatMethodV(jobject obj, jmethodID methodID,
duke@435 1026 va_list args) {
duke@435 1027 return functions->CallFloatMethodV(this,obj,methodID,args);
duke@435 1028 }
duke@435 1029 jfloat CallFloatMethodA(jobject obj, jmethodID methodID,
duke@435 1030 const jvalue * args) {
duke@435 1031 return functions->CallFloatMethodA(this,obj,methodID,args);
duke@435 1032 }
duke@435 1033
duke@435 1034 jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) {
duke@435 1035 va_list args;
duke@435 1036 jdouble result;
duke@435 1037 va_start(args,methodID);
duke@435 1038 result = functions->CallDoubleMethodV(this,obj,methodID,args);
duke@435 1039 va_end(args);
duke@435 1040 return result;
duke@435 1041 }
duke@435 1042 jdouble CallDoubleMethodV(jobject obj, jmethodID methodID,
duke@435 1043 va_list args) {
duke@435 1044 return functions->CallDoubleMethodV(this,obj,methodID,args);
duke@435 1045 }
duke@435 1046 jdouble CallDoubleMethodA(jobject obj, jmethodID methodID,
duke@435 1047 const jvalue * args) {
duke@435 1048 return functions->CallDoubleMethodA(this,obj,methodID,args);
duke@435 1049 }
duke@435 1050
duke@435 1051 void CallVoidMethod(jobject obj, jmethodID methodID, ...) {
duke@435 1052 va_list args;
duke@435 1053 va_start(args,methodID);
duke@435 1054 functions->CallVoidMethodV(this,obj,methodID,args);
duke@435 1055 va_end(args);
duke@435 1056 }
duke@435 1057 void CallVoidMethodV(jobject obj, jmethodID methodID,
duke@435 1058 va_list args) {
duke@435 1059 functions->CallVoidMethodV(this,obj,methodID,args);
duke@435 1060 }
duke@435 1061 void CallVoidMethodA(jobject obj, jmethodID methodID,
duke@435 1062 const jvalue * args) {
duke@435 1063 functions->CallVoidMethodA(this,obj,methodID,args);
duke@435 1064 }
duke@435 1065
duke@435 1066 jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz,
duke@435 1067 jmethodID methodID, ...) {
duke@435 1068 va_list args;
duke@435 1069 jobject result;
duke@435 1070 va_start(args,methodID);
duke@435 1071 result = functions->CallNonvirtualObjectMethodV(this,obj,clazz,
duke@435 1072 methodID,args);
duke@435 1073 va_end(args);
duke@435 1074 return result;
duke@435 1075 }
duke@435 1076 jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz,
duke@435 1077 jmethodID methodID, va_list args) {
duke@435 1078 return functions->CallNonvirtualObjectMethodV(this,obj,clazz,
duke@435 1079 methodID,args);
duke@435 1080 }
duke@435 1081 jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz,
duke@435 1082 jmethodID methodID, const jvalue * args) {
duke@435 1083 return functions->CallNonvirtualObjectMethodA(this,obj,clazz,
duke@435 1084 methodID,args);
duke@435 1085 }
duke@435 1086
duke@435 1087 jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz,
duke@435 1088 jmethodID methodID, ...) {
duke@435 1089 va_list args;
duke@435 1090 jboolean result;
duke@435 1091 va_start(args,methodID);
duke@435 1092 result = functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
duke@435 1093 methodID,args);
duke@435 1094 va_end(args);
duke@435 1095 return result;
duke@435 1096 }
duke@435 1097 jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz,
duke@435 1098 jmethodID methodID, va_list args) {
duke@435 1099 return functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
duke@435 1100 methodID,args);
duke@435 1101 }
duke@435 1102 jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz,
duke@435 1103 jmethodID methodID, const jvalue * args) {
duke@435 1104 return functions->CallNonvirtualBooleanMethodA(this,obj,clazz,
duke@435 1105 methodID, args);
duke@435 1106 }
duke@435 1107
duke@435 1108 jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz,
duke@435 1109 jmethodID methodID, ...) {
duke@435 1110 va_list args;
duke@435 1111 jbyte result;
duke@435 1112 va_start(args,methodID);
duke@435 1113 result = functions->CallNonvirtualByteMethodV(this,obj,clazz,
duke@435 1114 methodID,args);
duke@435 1115 va_end(args);
duke@435 1116 return result;
duke@435 1117 }
duke@435 1118 jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz,
duke@435 1119 jmethodID methodID, va_list args) {
duke@435 1120 return functions->CallNonvirtualByteMethodV(this,obj,clazz,
duke@435 1121 methodID,args);
duke@435 1122 }
duke@435 1123 jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz,
duke@435 1124 jmethodID methodID, const jvalue * args) {
duke@435 1125 return functions->CallNonvirtualByteMethodA(this,obj,clazz,
duke@435 1126 methodID,args);
duke@435 1127 }
duke@435 1128
duke@435 1129 jchar CallNonvirtualCharMethod(jobject obj, jclass clazz,
duke@435 1130 jmethodID methodID, ...) {
duke@435 1131 va_list args;
duke@435 1132 jchar result;
duke@435 1133 va_start(args,methodID);
duke@435 1134 result = functions->CallNonvirtualCharMethodV(this,obj,clazz,
duke@435 1135 methodID,args);
duke@435 1136 va_end(args);
duke@435 1137 return result;
duke@435 1138 }
duke@435 1139 jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz,
duke@435 1140 jmethodID methodID, va_list args) {
duke@435 1141 return functions->CallNonvirtualCharMethodV(this,obj,clazz,
duke@435 1142 methodID,args);
duke@435 1143 }
duke@435 1144 jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz,
duke@435 1145 jmethodID methodID, const jvalue * args) {
duke@435 1146 return functions->CallNonvirtualCharMethodA(this,obj,clazz,
duke@435 1147 methodID,args);
duke@435 1148 }
duke@435 1149
duke@435 1150 jshort CallNonvirtualShortMethod(jobject obj, jclass clazz,
duke@435 1151 jmethodID methodID, ...) {
duke@435 1152 va_list args;
duke@435 1153 jshort result;
duke@435 1154 va_start(args,methodID);
duke@435 1155 result = functions->CallNonvirtualShortMethodV(this,obj,clazz,
duke@435 1156 methodID,args);
duke@435 1157 va_end(args);
duke@435 1158 return result;
duke@435 1159 }
duke@435 1160 jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz,
duke@435 1161 jmethodID methodID, va_list args) {
duke@435 1162 return functions->CallNonvirtualShortMethodV(this,obj,clazz,
duke@435 1163 methodID,args);
duke@435 1164 }
duke@435 1165 jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz,
duke@435 1166 jmethodID methodID, const jvalue * args) {
duke@435 1167 return functions->CallNonvirtualShortMethodA(this,obj,clazz,
duke@435 1168 methodID,args);
duke@435 1169 }
duke@435 1170
duke@435 1171 jint CallNonvirtualIntMethod(jobject obj, jclass clazz,
duke@435 1172 jmethodID methodID, ...) {
duke@435 1173 va_list args;
duke@435 1174 jint result;
duke@435 1175 va_start(args,methodID);
duke@435 1176 result = functions->CallNonvirtualIntMethodV(this,obj,clazz,
duke@435 1177 methodID,args);
duke@435 1178 va_end(args);
duke@435 1179 return result;
duke@435 1180 }
duke@435 1181 jint CallNonvirtualIntMethodV(jobject obj, jclass clazz,
duke@435 1182 jmethodID methodID, va_list args) {
duke@435 1183 return functions->CallNonvirtualIntMethodV(this,obj,clazz,
duke@435 1184 methodID,args);
duke@435 1185 }
duke@435 1186 jint CallNonvirtualIntMethodA(jobject obj, jclass clazz,
duke@435 1187 jmethodID methodID, const jvalue * args) {
duke@435 1188 return functions->CallNonvirtualIntMethodA(this,obj,clazz,
duke@435 1189 methodID,args);
duke@435 1190 }
duke@435 1191
duke@435 1192 jlong CallNonvirtualLongMethod(jobject obj, jclass clazz,
duke@435 1193 jmethodID methodID, ...) {
duke@435 1194 va_list args;
duke@435 1195 jlong result;
duke@435 1196 va_start(args,methodID);
duke@435 1197 result = functions->CallNonvirtualLongMethodV(this,obj,clazz,
duke@435 1198 methodID,args);
duke@435 1199 va_end(args);
duke@435 1200 return result;
duke@435 1201 }
duke@435 1202 jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz,
duke@435 1203 jmethodID methodID, va_list args) {
duke@435 1204 return functions->CallNonvirtualLongMethodV(this,obj,clazz,
duke@435 1205 methodID,args);
duke@435 1206 }
duke@435 1207 jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz,
duke@435 1208 jmethodID methodID, const jvalue * args) {
duke@435 1209 return functions->CallNonvirtualLongMethodA(this,obj,clazz,
duke@435 1210 methodID,args);
duke@435 1211 }
duke@435 1212
duke@435 1213 jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz,
duke@435 1214 jmethodID methodID, ...) {
duke@435 1215 va_list args;
duke@435 1216 jfloat result;
duke@435 1217 va_start(args,methodID);
duke@435 1218 result = functions->CallNonvirtualFloatMethodV(this,obj,clazz,
duke@435 1219 methodID,args);
duke@435 1220 va_end(args);
duke@435 1221 return result;
duke@435 1222 }
duke@435 1223 jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz,
duke@435 1224 jmethodID methodID,
duke@435 1225 va_list args) {
duke@435 1226 return functions->CallNonvirtualFloatMethodV(this,obj,clazz,
duke@435 1227 methodID,args);
duke@435 1228 }
duke@435 1229 jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz,
duke@435 1230 jmethodID methodID,
duke@435 1231 const jvalue * args) {
duke@435 1232 return functions->CallNonvirtualFloatMethodA(this,obj,clazz,
duke@435 1233 methodID,args);
duke@435 1234 }
duke@435 1235
duke@435 1236 jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz,
duke@435 1237 jmethodID methodID, ...) {
duke@435 1238 va_list args;
duke@435 1239 jdouble result;
duke@435 1240 va_start(args,methodID);
duke@435 1241 result = functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
duke@435 1242 methodID,args);
duke@435 1243 va_end(args);
duke@435 1244 return result;
duke@435 1245 }
duke@435 1246 jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz,
duke@435 1247 jmethodID methodID,
duke@435 1248 va_list args) {
duke@435 1249 return functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
duke@435 1250 methodID,args);
duke@435 1251 }
duke@435 1252 jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz,
duke@435 1253 jmethodID methodID,
duke@435 1254 const jvalue * args) {
duke@435 1255 return functions->CallNonvirtualDoubleMethodA(this,obj,clazz,
duke@435 1256 methodID,args);
duke@435 1257 }
duke@435 1258
duke@435 1259 void CallNonvirtualVoidMethod(jobject obj, jclass clazz,
duke@435 1260 jmethodID methodID, ...) {
duke@435 1261 va_list args;
duke@435 1262 va_start(args,methodID);
duke@435 1263 functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
duke@435 1264 va_end(args);
duke@435 1265 }
duke@435 1266 void CallNonvirtualVoidMethodV(jobject obj, jclass clazz,
duke@435 1267 jmethodID methodID,
duke@435 1268 va_list args) {
duke@435 1269 functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
duke@435 1270 }
duke@435 1271 void CallNonvirtualVoidMethodA(jobject obj, jclass clazz,
duke@435 1272 jmethodID methodID,
duke@435 1273 const jvalue * args) {
duke@435 1274 functions->CallNonvirtualVoidMethodA(this,obj,clazz,methodID,args);
duke@435 1275 }
duke@435 1276
duke@435 1277 jfieldID GetFieldID(jclass clazz, const char *name,
duke@435 1278 const char *sig) {
duke@435 1279 return functions->GetFieldID(this,clazz,name,sig);
duke@435 1280 }
duke@435 1281
duke@435 1282 jobject GetObjectField(jobject obj, jfieldID fieldID) {
duke@435 1283 return functions->GetObjectField(this,obj,fieldID);
duke@435 1284 }
duke@435 1285 jboolean GetBooleanField(jobject obj, jfieldID fieldID) {
duke@435 1286 return functions->GetBooleanField(this,obj,fieldID);
duke@435 1287 }
duke@435 1288 jbyte GetByteField(jobject obj, jfieldID fieldID) {
duke@435 1289 return functions->GetByteField(this,obj,fieldID);
duke@435 1290 }
duke@435 1291 jchar GetCharField(jobject obj, jfieldID fieldID) {
duke@435 1292 return functions->GetCharField(this,obj,fieldID);
duke@435 1293 }
duke@435 1294 jshort GetShortField(jobject obj, jfieldID fieldID) {
duke@435 1295 return functions->GetShortField(this,obj,fieldID);
duke@435 1296 }
duke@435 1297 jint GetIntField(jobject obj, jfieldID fieldID) {
duke@435 1298 return functions->GetIntField(this,obj,fieldID);
duke@435 1299 }
duke@435 1300 jlong GetLongField(jobject obj, jfieldID fieldID) {
duke@435 1301 return functions->GetLongField(this,obj,fieldID);
duke@435 1302 }
duke@435 1303 jfloat GetFloatField(jobject obj, jfieldID fieldID) {
duke@435 1304 return functions->GetFloatField(this,obj,fieldID);
duke@435 1305 }
duke@435 1306 jdouble GetDoubleField(jobject obj, jfieldID fieldID) {
duke@435 1307 return functions->GetDoubleField(this,obj,fieldID);
duke@435 1308 }
duke@435 1309
duke@435 1310 void SetObjectField(jobject obj, jfieldID fieldID, jobject val) {
duke@435 1311 functions->SetObjectField(this,obj,fieldID,val);
duke@435 1312 }
duke@435 1313 void SetBooleanField(jobject obj, jfieldID fieldID,
duke@435 1314 jboolean val) {
duke@435 1315 functions->SetBooleanField(this,obj,fieldID,val);
duke@435 1316 }
duke@435 1317 void SetByteField(jobject obj, jfieldID fieldID,
duke@435 1318 jbyte val) {
duke@435 1319 functions->SetByteField(this,obj,fieldID,val);
duke@435 1320 }
duke@435 1321 void SetCharField(jobject obj, jfieldID fieldID,
duke@435 1322 jchar val) {
duke@435 1323 functions->SetCharField(this,obj,fieldID,val);
duke@435 1324 }
duke@435 1325 void SetShortField(jobject obj, jfieldID fieldID,
duke@435 1326 jshort val) {
duke@435 1327 functions->SetShortField(this,obj,fieldID,val);
duke@435 1328 }
duke@435 1329 void SetIntField(jobject obj, jfieldID fieldID,
duke@435 1330 jint val) {
duke@435 1331 functions->SetIntField(this,obj,fieldID,val);
duke@435 1332 }
duke@435 1333 void SetLongField(jobject obj, jfieldID fieldID,
duke@435 1334 jlong val) {
duke@435 1335 functions->SetLongField(this,obj,fieldID,val);
duke@435 1336 }
duke@435 1337 void SetFloatField(jobject obj, jfieldID fieldID,
duke@435 1338 jfloat val) {
duke@435 1339 functions->SetFloatField(this,obj,fieldID,val);
duke@435 1340 }
duke@435 1341 void SetDoubleField(jobject obj, jfieldID fieldID,
duke@435 1342 jdouble val) {
duke@435 1343 functions->SetDoubleField(this,obj,fieldID,val);
duke@435 1344 }
duke@435 1345
duke@435 1346 jmethodID GetStaticMethodID(jclass clazz, const char *name,
duke@435 1347 const char *sig) {
duke@435 1348 return functions->GetStaticMethodID(this,clazz,name,sig);
duke@435 1349 }
duke@435 1350
duke@435 1351 jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID,
duke@435 1352 ...) {
duke@435 1353 va_list args;
duke@435 1354 jobject result;
duke@435 1355 va_start(args,methodID);
duke@435 1356 result = functions->CallStaticObjectMethodV(this,clazz,methodID,args);
duke@435 1357 va_end(args);
duke@435 1358 return result;
duke@435 1359 }
duke@435 1360 jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID,
duke@435 1361 va_list args) {
duke@435 1362 return functions->CallStaticObjectMethodV(this,clazz,methodID,args);
duke@435 1363 }
duke@435 1364 jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID,
duke@435 1365 const jvalue *args) {
duke@435 1366 return functions->CallStaticObjectMethodA(this,clazz,methodID,args);
duke@435 1367 }
duke@435 1368
duke@435 1369 jboolean CallStaticBooleanMethod(jclass clazz,
duke@435 1370 jmethodID methodID, ...) {
duke@435 1371 va_list args;
duke@435 1372 jboolean result;
duke@435 1373 va_start(args,methodID);
duke@435 1374 result = functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
duke@435 1375 va_end(args);
duke@435 1376 return result;
duke@435 1377 }
duke@435 1378 jboolean CallStaticBooleanMethodV(jclass clazz,
duke@435 1379 jmethodID methodID, va_list args) {
duke@435 1380 return functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
duke@435 1381 }
duke@435 1382 jboolean CallStaticBooleanMethodA(jclass clazz,
duke@435 1383 jmethodID methodID, const jvalue *args) {
duke@435 1384 return functions->CallStaticBooleanMethodA(this,clazz,methodID,args);
duke@435 1385 }
duke@435 1386
duke@435 1387 jbyte CallStaticByteMethod(jclass clazz,
duke@435 1388 jmethodID methodID, ...) {
duke@435 1389 va_list args;
duke@435 1390 jbyte result;
duke@435 1391 va_start(args,methodID);
duke@435 1392 result = functions->CallStaticByteMethodV(this,clazz,methodID,args);
duke@435 1393 va_end(args);
duke@435 1394 return result;
duke@435 1395 }
duke@435 1396 jbyte CallStaticByteMethodV(jclass clazz,
duke@435 1397 jmethodID methodID, va_list args) {
duke@435 1398 return functions->CallStaticByteMethodV(this,clazz,methodID,args);
duke@435 1399 }
duke@435 1400 jbyte CallStaticByteMethodA(jclass clazz,
duke@435 1401 jmethodID methodID, const jvalue *args) {
duke@435 1402 return functions->CallStaticByteMethodA(this,clazz,methodID,args);
duke@435 1403 }
duke@435 1404
duke@435 1405 jchar CallStaticCharMethod(jclass clazz,
duke@435 1406 jmethodID methodID, ...) {
duke@435 1407 va_list args;
duke@435 1408 jchar result;
duke@435 1409 va_start(args,methodID);
duke@435 1410 result = functions->CallStaticCharMethodV(this,clazz,methodID,args);
duke@435 1411 va_end(args);
duke@435 1412 return result;
duke@435 1413 }
duke@435 1414 jchar CallStaticCharMethodV(jclass clazz,
duke@435 1415 jmethodID methodID, va_list args) {
duke@435 1416 return functions->CallStaticCharMethodV(this,clazz,methodID,args);
duke@435 1417 }
duke@435 1418 jchar CallStaticCharMethodA(jclass clazz,
duke@435 1419 jmethodID methodID, const jvalue *args) {
duke@435 1420 return functions->CallStaticCharMethodA(this,clazz,methodID,args);
duke@435 1421 }
duke@435 1422
duke@435 1423 jshort CallStaticShortMethod(jclass clazz,
duke@435 1424 jmethodID methodID, ...) {
duke@435 1425 va_list args;
duke@435 1426 jshort result;
duke@435 1427 va_start(args,methodID);
duke@435 1428 result = functions->CallStaticShortMethodV(this,clazz,methodID,args);
duke@435 1429 va_end(args);
duke@435 1430 return result;
duke@435 1431 }
duke@435 1432 jshort CallStaticShortMethodV(jclass clazz,
duke@435 1433 jmethodID methodID, va_list args) {
duke@435 1434 return functions->CallStaticShortMethodV(this,clazz,methodID,args);
duke@435 1435 }
duke@435 1436 jshort CallStaticShortMethodA(jclass clazz,
duke@435 1437 jmethodID methodID, const jvalue *args) {
duke@435 1438 return functions->CallStaticShortMethodA(this,clazz,methodID,args);
duke@435 1439 }
duke@435 1440
duke@435 1441 jint CallStaticIntMethod(jclass clazz,
duke@435 1442 jmethodID methodID, ...) {
duke@435 1443 va_list args;
duke@435 1444 jint result;
duke@435 1445 va_start(args,methodID);
duke@435 1446 result = functions->CallStaticIntMethodV(this,clazz,methodID,args);
duke@435 1447 va_end(args);
duke@435 1448 return result;
duke@435 1449 }
duke@435 1450 jint CallStaticIntMethodV(jclass clazz,
duke@435 1451 jmethodID methodID, va_list args) {
duke@435 1452 return functions->CallStaticIntMethodV(this,clazz,methodID,args);
duke@435 1453 }
duke@435 1454 jint CallStaticIntMethodA(jclass clazz,
duke@435 1455 jmethodID methodID, const jvalue *args) {
duke@435 1456 return functions->CallStaticIntMethodA(this,clazz,methodID,args);
duke@435 1457 }
duke@435 1458
duke@435 1459 jlong CallStaticLongMethod(jclass clazz,
duke@435 1460 jmethodID methodID, ...) {
duke@435 1461 va_list args;
duke@435 1462 jlong result;
duke@435 1463 va_start(args,methodID);
duke@435 1464 result = functions->CallStaticLongMethodV(this,clazz,methodID,args);
duke@435 1465 va_end(args);
duke@435 1466 return result;
duke@435 1467 }
duke@435 1468 jlong CallStaticLongMethodV(jclass clazz,
duke@435 1469 jmethodID methodID, va_list args) {
duke@435 1470 return functions->CallStaticLongMethodV(this,clazz,methodID,args);
duke@435 1471 }
duke@435 1472 jlong CallStaticLongMethodA(jclass clazz,
duke@435 1473 jmethodID methodID, const jvalue *args) {
duke@435 1474 return functions->CallStaticLongMethodA(this,clazz,methodID,args);
duke@435 1475 }
duke@435 1476
duke@435 1477 jfloat CallStaticFloatMethod(jclass clazz,
duke@435 1478 jmethodID methodID, ...) {
duke@435 1479 va_list args;
duke@435 1480 jfloat result;
duke@435 1481 va_start(args,methodID);
duke@435 1482 result = functions->CallStaticFloatMethodV(this,clazz,methodID,args);
duke@435 1483 va_end(args);
duke@435 1484 return result;
duke@435 1485 }
duke@435 1486 jfloat CallStaticFloatMethodV(jclass clazz,
duke@435 1487 jmethodID methodID, va_list args) {
duke@435 1488 return functions->CallStaticFloatMethodV(this,clazz,methodID,args);
duke@435 1489 }
duke@435 1490 jfloat CallStaticFloatMethodA(jclass clazz,
duke@435 1491 jmethodID methodID, const jvalue *args) {
duke@435 1492 return functions->CallStaticFloatMethodA(this,clazz,methodID,args);
duke@435 1493 }
duke@435 1494
duke@435 1495 jdouble CallStaticDoubleMethod(jclass clazz,
duke@435 1496 jmethodID methodID, ...) {
duke@435 1497 va_list args;
duke@435 1498 jdouble result;
duke@435 1499 va_start(args,methodID);
duke@435 1500 result = functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
duke@435 1501 va_end(args);
duke@435 1502 return result;
duke@435 1503 }
duke@435 1504 jdouble CallStaticDoubleMethodV(jclass clazz,
duke@435 1505 jmethodID methodID, va_list args) {
duke@435 1506 return functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
duke@435 1507 }
duke@435 1508 jdouble CallStaticDoubleMethodA(jclass clazz,
duke@435 1509 jmethodID methodID, const jvalue *args) {
duke@435 1510 return functions->CallStaticDoubleMethodA(this,clazz,methodID,args);
duke@435 1511 }
duke@435 1512
duke@435 1513 void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) {
duke@435 1514 va_list args;
duke@435 1515 va_start(args,methodID);
duke@435 1516 functions->CallStaticVoidMethodV(this,cls,methodID,args);
duke@435 1517 va_end(args);
duke@435 1518 }
duke@435 1519 void CallStaticVoidMethodV(jclass cls, jmethodID methodID,
duke@435 1520 va_list args) {
duke@435 1521 functions->CallStaticVoidMethodV(this,cls,methodID,args);
duke@435 1522 }
duke@435 1523 void CallStaticVoidMethodA(jclass cls, jmethodID methodID,
duke@435 1524 const jvalue * args) {
duke@435 1525 functions->CallStaticVoidMethodA(this,cls,methodID,args);
duke@435 1526 }
duke@435 1527
duke@435 1528 jfieldID GetStaticFieldID(jclass clazz, const char *name,
duke@435 1529 const char *sig) {
duke@435 1530 return functions->GetStaticFieldID(this,clazz,name,sig);
duke@435 1531 }
duke@435 1532 jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) {
duke@435 1533 return functions->GetStaticObjectField(this,clazz,fieldID);
duke@435 1534 }
duke@435 1535 jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) {
duke@435 1536 return functions->GetStaticBooleanField(this,clazz,fieldID);
duke@435 1537 }
duke@435 1538 jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) {
duke@435 1539 return functions->GetStaticByteField(this,clazz,fieldID);
duke@435 1540 }
duke@435 1541 jchar GetStaticCharField(jclass clazz, jfieldID fieldID) {
duke@435 1542 return functions->GetStaticCharField(this,clazz,fieldID);
duke@435 1543 }
duke@435 1544 jshort GetStaticShortField(jclass clazz, jfieldID fieldID) {
duke@435 1545 return functions->GetStaticShortField(this,clazz,fieldID);
duke@435 1546 }
duke@435 1547 jint GetStaticIntField(jclass clazz, jfieldID fieldID) {
duke@435 1548 return functions->GetStaticIntField(this,clazz,fieldID);
duke@435 1549 }
duke@435 1550 jlong GetStaticLongField(jclass clazz, jfieldID fieldID) {
duke@435 1551 return functions->GetStaticLongField(this,clazz,fieldID);
duke@435 1552 }
duke@435 1553 jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) {
duke@435 1554 return functions->GetStaticFloatField(this,clazz,fieldID);
duke@435 1555 }
duke@435 1556 jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) {
duke@435 1557 return functions->GetStaticDoubleField(this,clazz,fieldID);
duke@435 1558 }
duke@435 1559
duke@435 1560 void SetStaticObjectField(jclass clazz, jfieldID fieldID,
duke@435 1561 jobject value) {
duke@435 1562 functions->SetStaticObjectField(this,clazz,fieldID,value);
duke@435 1563 }
duke@435 1564 void SetStaticBooleanField(jclass clazz, jfieldID fieldID,
duke@435 1565 jboolean value) {
duke@435 1566 functions->SetStaticBooleanField(this,clazz,fieldID,value);
duke@435 1567 }
duke@435 1568 void SetStaticByteField(jclass clazz, jfieldID fieldID,
duke@435 1569 jbyte value) {
duke@435 1570 functions->SetStaticByteField(this,clazz,fieldID,value);
duke@435 1571 }
duke@435 1572 void SetStaticCharField(jclass clazz, jfieldID fieldID,
duke@435 1573 jchar value) {
duke@435 1574 functions->SetStaticCharField(this,clazz,fieldID,value);
duke@435 1575 }
duke@435 1576 void SetStaticShortField(jclass clazz, jfieldID fieldID,
duke@435 1577 jshort value) {
duke@435 1578 functions->SetStaticShortField(this,clazz,fieldID,value);
duke@435 1579 }
duke@435 1580 void SetStaticIntField(jclass clazz, jfieldID fieldID,
duke@435 1581 jint value) {
duke@435 1582 functions->SetStaticIntField(this,clazz,fieldID,value);
duke@435 1583 }
duke@435 1584 void SetStaticLongField(jclass clazz, jfieldID fieldID,
duke@435 1585 jlong value) {
duke@435 1586 functions->SetStaticLongField(this,clazz,fieldID,value);
duke@435 1587 }
duke@435 1588 void SetStaticFloatField(jclass clazz, jfieldID fieldID,
duke@435 1589 jfloat value) {
duke@435 1590 functions->SetStaticFloatField(this,clazz,fieldID,value);
duke@435 1591 }
duke@435 1592 void SetStaticDoubleField(jclass clazz, jfieldID fieldID,
duke@435 1593 jdouble value) {
duke@435 1594 functions->SetStaticDoubleField(this,clazz,fieldID,value);
duke@435 1595 }
duke@435 1596
duke@435 1597 jstring NewString(const jchar *unicode, jsize len) {
duke@435 1598 return functions->NewString(this,unicode,len);
duke@435 1599 }
duke@435 1600 jsize GetStringLength(jstring str) {
duke@435 1601 return functions->GetStringLength(this,str);
duke@435 1602 }
duke@435 1603 const jchar *GetStringChars(jstring str, jboolean *isCopy) {
duke@435 1604 return functions->GetStringChars(this,str,isCopy);
duke@435 1605 }
duke@435 1606 void ReleaseStringChars(jstring str, const jchar *chars) {
duke@435 1607 functions->ReleaseStringChars(this,str,chars);
duke@435 1608 }
duke@435 1609
duke@435 1610 jstring NewStringUTF(const char *utf) {
duke@435 1611 return functions->NewStringUTF(this,utf);
duke@435 1612 }
duke@435 1613 jsize GetStringUTFLength(jstring str) {
duke@435 1614 return functions->GetStringUTFLength(this,str);
duke@435 1615 }
duke@435 1616 const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
duke@435 1617 return functions->GetStringUTFChars(this,str,isCopy);
duke@435 1618 }
duke@435 1619 void ReleaseStringUTFChars(jstring str, const char* chars) {
duke@435 1620 functions->ReleaseStringUTFChars(this,str,chars);
duke@435 1621 }
duke@435 1622
duke@435 1623 jsize GetArrayLength(jarray array) {
duke@435 1624 return functions->GetArrayLength(this,array);
duke@435 1625 }
duke@435 1626
duke@435 1627 jobjectArray NewObjectArray(jsize len, jclass clazz,
duke@435 1628 jobject init) {
duke@435 1629 return functions->NewObjectArray(this,len,clazz,init);
duke@435 1630 }
duke@435 1631 jobject GetObjectArrayElement(jobjectArray array, jsize index) {
duke@435 1632 return functions->GetObjectArrayElement(this,array,index);
duke@435 1633 }
duke@435 1634 void SetObjectArrayElement(jobjectArray array, jsize index,
duke@435 1635 jobject val) {
duke@435 1636 functions->SetObjectArrayElement(this,array,index,val);
duke@435 1637 }
duke@435 1638
duke@435 1639 jbooleanArray NewBooleanArray(jsize len) {
duke@435 1640 return functions->NewBooleanArray(this,len);
duke@435 1641 }
duke@435 1642 jbyteArray NewByteArray(jsize len) {
duke@435 1643 return functions->NewByteArray(this,len);
duke@435 1644 }
duke@435 1645 jcharArray NewCharArray(jsize len) {
duke@435 1646 return functions->NewCharArray(this,len);
duke@435 1647 }
duke@435 1648 jshortArray NewShortArray(jsize len) {
duke@435 1649 return functions->NewShortArray(this,len);
duke@435 1650 }
duke@435 1651 jintArray NewIntArray(jsize len) {
duke@435 1652 return functions->NewIntArray(this,len);
duke@435 1653 }
duke@435 1654 jlongArray NewLongArray(jsize len) {
duke@435 1655 return functions->NewLongArray(this,len);
duke@435 1656 }
duke@435 1657 jfloatArray NewFloatArray(jsize len) {
duke@435 1658 return functions->NewFloatArray(this,len);
duke@435 1659 }
duke@435 1660 jdoubleArray NewDoubleArray(jsize len) {
duke@435 1661 return functions->NewDoubleArray(this,len);
duke@435 1662 }
duke@435 1663
duke@435 1664 jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) {
duke@435 1665 return functions->GetBooleanArrayElements(this,array,isCopy);
duke@435 1666 }
duke@435 1667 jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) {
duke@435 1668 return functions->GetByteArrayElements(this,array,isCopy);
duke@435 1669 }
duke@435 1670 jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) {
duke@435 1671 return functions->GetCharArrayElements(this,array,isCopy);
duke@435 1672 }
duke@435 1673 jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) {
duke@435 1674 return functions->GetShortArrayElements(this,array,isCopy);
duke@435 1675 }
duke@435 1676 jint * GetIntArrayElements(jintArray array, jboolean *isCopy) {
duke@435 1677 return functions->GetIntArrayElements(this,array,isCopy);
duke@435 1678 }
duke@435 1679 jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) {
duke@435 1680 return functions->GetLongArrayElements(this,array,isCopy);
duke@435 1681 }
duke@435 1682 jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) {
duke@435 1683 return functions->GetFloatArrayElements(this,array,isCopy);
duke@435 1684 }
duke@435 1685 jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) {
duke@435 1686 return functions->GetDoubleArrayElements(this,array,isCopy);
duke@435 1687 }
duke@435 1688
duke@435 1689 void ReleaseBooleanArrayElements(jbooleanArray array,
duke@435 1690 jboolean *elems,
duke@435 1691 jint mode) {
duke@435 1692 functions->ReleaseBooleanArrayElements(this,array,elems,mode);
duke@435 1693 }
duke@435 1694 void ReleaseByteArrayElements(jbyteArray array,
duke@435 1695 jbyte *elems,
duke@435 1696 jint mode) {
duke@435 1697 functions->ReleaseByteArrayElements(this,array,elems,mode);
duke@435 1698 }
duke@435 1699 void ReleaseCharArrayElements(jcharArray array,
duke@435 1700 jchar *elems,
duke@435 1701 jint mode) {
duke@435 1702 functions->ReleaseCharArrayElements(this,array,elems,mode);
duke@435 1703 }
duke@435 1704 void ReleaseShortArrayElements(jshortArray array,
duke@435 1705 jshort *elems,
duke@435 1706 jint mode) {
duke@435 1707 functions->ReleaseShortArrayElements(this,array,elems,mode);
duke@435 1708 }
duke@435 1709 void ReleaseIntArrayElements(jintArray array,
duke@435 1710 jint *elems,
duke@435 1711 jint mode) {
duke@435 1712 functions->ReleaseIntArrayElements(this,array,elems,mode);
duke@435 1713 }
duke@435 1714 void ReleaseLongArrayElements(jlongArray array,
duke@435 1715 jlong *elems,
duke@435 1716 jint mode) {
duke@435 1717 functions->ReleaseLongArrayElements(this,array,elems,mode);
duke@435 1718 }
duke@435 1719 void ReleaseFloatArrayElements(jfloatArray array,
duke@435 1720 jfloat *elems,
duke@435 1721 jint mode) {
duke@435 1722 functions->ReleaseFloatArrayElements(this,array,elems,mode);
duke@435 1723 }
duke@435 1724 void ReleaseDoubleArrayElements(jdoubleArray array,
duke@435 1725 jdouble *elems,
duke@435 1726 jint mode) {
duke@435 1727 functions->ReleaseDoubleArrayElements(this,array,elems,mode);
duke@435 1728 }
duke@435 1729
duke@435 1730 void GetBooleanArrayRegion(jbooleanArray array,
duke@435 1731 jsize start, jsize len, jboolean *buf) {
duke@435 1732 functions->GetBooleanArrayRegion(this,array,start,len,buf);
duke@435 1733 }
duke@435 1734 void GetByteArrayRegion(jbyteArray array,
duke@435 1735 jsize start, jsize len, jbyte *buf) {
duke@435 1736 functions->GetByteArrayRegion(this,array,start,len,buf);
duke@435 1737 }
duke@435 1738 void GetCharArrayRegion(jcharArray array,
duke@435 1739 jsize start, jsize len, jchar *buf) {
duke@435 1740 functions->GetCharArrayRegion(this,array,start,len,buf);
duke@435 1741 }
duke@435 1742 void GetShortArrayRegion(jshortArray array,
duke@435 1743 jsize start, jsize len, jshort *buf) {
duke@435 1744 functions->GetShortArrayRegion(this,array,start,len,buf);
duke@435 1745 }
duke@435 1746 void GetIntArrayRegion(jintArray array,
duke@435 1747 jsize start, jsize len, jint *buf) {
duke@435 1748 functions->GetIntArrayRegion(this,array,start,len,buf);
duke@435 1749 }
duke@435 1750 void GetLongArrayRegion(jlongArray array,
duke@435 1751 jsize start, jsize len, jlong *buf) {
duke@435 1752 functions->GetLongArrayRegion(this,array,start,len,buf);
duke@435 1753 }
duke@435 1754 void GetFloatArrayRegion(jfloatArray array,
duke@435 1755 jsize start, jsize len, jfloat *buf) {
duke@435 1756 functions->GetFloatArrayRegion(this,array,start,len,buf);
duke@435 1757 }
duke@435 1758 void GetDoubleArrayRegion(jdoubleArray array,
duke@435 1759 jsize start, jsize len, jdouble *buf) {
duke@435 1760 functions->GetDoubleArrayRegion(this,array,start,len,buf);
duke@435 1761 }
duke@435 1762
duke@435 1763 void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len,
duke@435 1764 const jboolean *buf) {
duke@435 1765 functions->SetBooleanArrayRegion(this,array,start,len,buf);
duke@435 1766 }
duke@435 1767 void SetByteArrayRegion(jbyteArray array, jsize start, jsize len,
duke@435 1768 const jbyte *buf) {
duke@435 1769 functions->SetByteArrayRegion(this,array,start,len,buf);
duke@435 1770 }
duke@435 1771 void SetCharArrayRegion(jcharArray array, jsize start, jsize len,
duke@435 1772 const jchar *buf) {
duke@435 1773 functions->SetCharArrayRegion(this,array,start,len,buf);
duke@435 1774 }
duke@435 1775 void SetShortArrayRegion(jshortArray array, jsize start, jsize len,
duke@435 1776 const jshort *buf) {
duke@435 1777 functions->SetShortArrayRegion(this,array,start,len,buf);
duke@435 1778 }
duke@435 1779 void SetIntArrayRegion(jintArray array, jsize start, jsize len,
duke@435 1780 const jint *buf) {
duke@435 1781 functions->SetIntArrayRegion(this,array,start,len,buf);
duke@435 1782 }
duke@435 1783 void SetLongArrayRegion(jlongArray array, jsize start, jsize len,
duke@435 1784 const jlong *buf) {
duke@435 1785 functions->SetLongArrayRegion(this,array,start,len,buf);
duke@435 1786 }
duke@435 1787 void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len,
duke@435 1788 const jfloat *buf) {
duke@435 1789 functions->SetFloatArrayRegion(this,array,start,len,buf);
duke@435 1790 }
duke@435 1791 void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len,
duke@435 1792 const jdouble *buf) {
duke@435 1793 functions->SetDoubleArrayRegion(this,array,start,len,buf);
duke@435 1794 }
duke@435 1795
duke@435 1796 jint RegisterNatives(jclass clazz, const JNINativeMethod *methods,
duke@435 1797 jint nMethods) {
duke@435 1798 return functions->RegisterNatives(this,clazz,methods,nMethods);
duke@435 1799 }
duke@435 1800 jint UnregisterNatives(jclass clazz) {
duke@435 1801 return functions->UnregisterNatives(this,clazz);
duke@435 1802 }
duke@435 1803
duke@435 1804 jint MonitorEnter(jobject obj) {
duke@435 1805 return functions->MonitorEnter(this,obj);
duke@435 1806 }
duke@435 1807 jint MonitorExit(jobject obj) {
duke@435 1808 return functions->MonitorExit(this,obj);
duke@435 1809 }
duke@435 1810
duke@435 1811 jint GetJavaVM(JavaVM **vm) {
duke@435 1812 return functions->GetJavaVM(this,vm);
duke@435 1813 }
duke@435 1814
duke@435 1815 void GetStringRegion(jstring str, jsize start, jsize len, jchar *buf) {
duke@435 1816 functions->GetStringRegion(this,str,start,len,buf);
duke@435 1817 }
duke@435 1818 void GetStringUTFRegion(jstring str, jsize start, jsize len, char *buf) {
duke@435 1819 functions->GetStringUTFRegion(this,str,start,len,buf);
duke@435 1820 }
duke@435 1821
duke@435 1822 void * GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) {
duke@435 1823 return functions->GetPrimitiveArrayCritical(this,array,isCopy);
duke@435 1824 }
duke@435 1825 void ReleasePrimitiveArrayCritical(jarray array, void *carray, jint mode) {
duke@435 1826 functions->ReleasePrimitiveArrayCritical(this,array,carray,mode);
duke@435 1827 }
duke@435 1828
duke@435 1829 const jchar * GetStringCritical(jstring string, jboolean *isCopy) {
duke@435 1830 return functions->GetStringCritical(this,string,isCopy);
duke@435 1831 }
duke@435 1832 void ReleaseStringCritical(jstring string, const jchar *cstring) {
duke@435 1833 functions->ReleaseStringCritical(this,string,cstring);
duke@435 1834 }
duke@435 1835
duke@435 1836 jweak NewWeakGlobalRef(jobject obj) {
duke@435 1837 return functions->NewWeakGlobalRef(this,obj);
duke@435 1838 }
duke@435 1839 void DeleteWeakGlobalRef(jweak ref) {
duke@435 1840 functions->DeleteWeakGlobalRef(this,ref);
duke@435 1841 }
duke@435 1842
duke@435 1843 jboolean ExceptionCheck() {
duke@435 1844 return functions->ExceptionCheck(this);
duke@435 1845 }
duke@435 1846
duke@435 1847 jobject NewDirectByteBuffer(void* address, jlong capacity) {
duke@435 1848 return functions->NewDirectByteBuffer(this, address, capacity);
duke@435 1849 }
duke@435 1850 void* GetDirectBufferAddress(jobject buf) {
duke@435 1851 return functions->GetDirectBufferAddress(this, buf);
duke@435 1852 }
duke@435 1853 jlong GetDirectBufferCapacity(jobject buf) {
duke@435 1854 return functions->GetDirectBufferCapacity(this, buf);
duke@435 1855 }
duke@435 1856 jobjectRefType GetObjectRefType(jobject obj) {
duke@435 1857 return functions->GetObjectRefType(this, obj);
duke@435 1858 }
duke@435 1859
duke@435 1860 #endif /* __cplusplus */
duke@435 1861 };
duke@435 1862
duke@435 1863 typedef struct JavaVMOption {
duke@435 1864 char *optionString;
duke@435 1865 void *extraInfo;
duke@435 1866 } JavaVMOption;
duke@435 1867
duke@435 1868 typedef struct JavaVMInitArgs {
duke@435 1869 jint version;
duke@435 1870
duke@435 1871 jint nOptions;
duke@435 1872 JavaVMOption *options;
duke@435 1873 jboolean ignoreUnrecognized;
duke@435 1874 } JavaVMInitArgs;
duke@435 1875
duke@435 1876 typedef struct JavaVMAttachArgs {
duke@435 1877 jint version;
duke@435 1878
duke@435 1879 char *name;
duke@435 1880 jobject group;
duke@435 1881 } JavaVMAttachArgs;
duke@435 1882
duke@435 1883 /* These will be VM-specific. */
duke@435 1884
duke@435 1885 #define JDK1_2
duke@435 1886 #define JDK1_4
duke@435 1887
duke@435 1888 /* End VM-specific. */
duke@435 1889
duke@435 1890 struct JNIInvokeInterface_ {
duke@435 1891 void *reserved0;
duke@435 1892 void *reserved1;
duke@435 1893 void *reserved2;
duke@435 1894
duke@435 1895 jint (JNICALL *DestroyJavaVM)(JavaVM *vm);
duke@435 1896
duke@435 1897 jint (JNICALL *AttachCurrentThread)(JavaVM *vm, void **penv, void *args);
duke@435 1898
duke@435 1899 jint (JNICALL *DetachCurrentThread)(JavaVM *vm);
duke@435 1900
duke@435 1901 jint (JNICALL *GetEnv)(JavaVM *vm, void **penv, jint version);
duke@435 1902
duke@435 1903 jint (JNICALL *AttachCurrentThreadAsDaemon)(JavaVM *vm, void **penv, void *args);
duke@435 1904 };
duke@435 1905
duke@435 1906 struct JavaVM_ {
duke@435 1907 const struct JNIInvokeInterface_ *functions;
duke@435 1908 #ifdef __cplusplus
duke@435 1909
duke@435 1910 jint DestroyJavaVM() {
duke@435 1911 return functions->DestroyJavaVM(this);
duke@435 1912 }
duke@435 1913 jint AttachCurrentThread(void **penv, void *args) {
duke@435 1914 return functions->AttachCurrentThread(this, penv, args);
duke@435 1915 }
duke@435 1916 jint DetachCurrentThread() {
duke@435 1917 return functions->DetachCurrentThread(this);
duke@435 1918 }
duke@435 1919
duke@435 1920 jint GetEnv(void **penv, jint version) {
duke@435 1921 return functions->GetEnv(this, penv, version);
duke@435 1922 }
duke@435 1923 jint AttachCurrentThreadAsDaemon(void **penv, void *args) {
duke@435 1924 return functions->AttachCurrentThreadAsDaemon(this, penv, args);
duke@435 1925 }
duke@435 1926 #endif
duke@435 1927 };
duke@435 1928
duke@435 1929 #ifdef _JNI_IMPLEMENTATION_
duke@435 1930 #define _JNI_IMPORT_OR_EXPORT_ JNIEXPORT
duke@435 1931 #else
duke@435 1932 #define _JNI_IMPORT_OR_EXPORT_ JNIIMPORT
duke@435 1933 #endif
duke@435 1934 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
duke@435 1935 JNI_GetDefaultJavaVMInitArgs(void *args);
duke@435 1936
duke@435 1937 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
duke@435 1938 JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args);
duke@435 1939
duke@435 1940 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
duke@435 1941 JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
duke@435 1942
duke@435 1943 /* Defined by native libraries. */
duke@435 1944 JNIEXPORT jint JNICALL
duke@435 1945 JNI_OnLoad(JavaVM *vm, void *reserved);
duke@435 1946
duke@435 1947 JNIEXPORT void JNICALL
duke@435 1948 JNI_OnUnload(JavaVM *vm, void *reserved);
duke@435 1949
duke@435 1950 #define JNI_VERSION_1_1 0x00010001
duke@435 1951 #define JNI_VERSION_1_2 0x00010002
duke@435 1952 #define JNI_VERSION_1_4 0x00010004
duke@435 1953 #define JNI_VERSION_1_6 0x00010006
bpittore@4793 1954 #define JNI_VERSION_1_8 0x00010008
duke@435 1955
duke@435 1956 #ifdef __cplusplus
duke@435 1957 } /* extern "C" */
duke@435 1958 #endif /* __cplusplus */
duke@435 1959
duke@435 1960 #endif /* !_JAVASOFT_JNI_H_ */

mercurial