IKVM11  11
Java SE 11 Virtual Machine for .NET
Loading...
Searching...
No Matches
JNINativeInterface.cs
Go to the documentation of this file.
1using System;
2using System.Runtime.InteropServices;
3
4using Microsoft.Win32.SafeHandles;
5
6namespace IKVM.Runtime.JNI
7{
8
9#if FIRST_PASS == false && IMPORTER == false && EXPORTER == false
10
11 using jarray = System.IntPtr;
12 using jboolean = System.SByte;
13 using jbooleanArray = System.IntPtr;
14 using jbyte = System.SByte;
15 using jbyteArray = System.IntPtr;
16 using jchar = System.UInt16;
17 using jcharArray = System.IntPtr;
18 using jclass = System.IntPtr;
19 using jdouble = System.Double;
20 using jdoubleArray = System.IntPtr;
21 using jfieldID = System.IntPtr;
22 using jfloat = System.Single;
23 using jfloatArray = System.IntPtr;
24 using jint = System.Int32;
25 using jintArray = System.IntPtr;
26 using jlong = System.Int64;
27 using jlongArray = System.IntPtr;
28 using jmethodID = System.IntPtr;
29 using jobject = System.IntPtr;
30 using jobjectArray = System.IntPtr;
31 using jshort = System.Int16;
32 using jshortArray = System.IntPtr;
33 using jsize = System.Int32;
34 using jstring = System.IntPtr;
35 using jthrowable = System.IntPtr;
36 using jweak = System.IntPtr;
37
41 [StructLayout(LayoutKind.Sequential)]
42 unsafe struct JNINativeInterface
43 {
44
48 class JNINativeInterfaceHandle : SafeHandleZeroOrMinusOneIsInvalid
49 {
50
54 public static readonly JNINativeInterfaceHandle Instance = new();
55
60 base(true)
61 {
62 SetHandle(Marshal.AllocHGlobal(sizeof(JNINativeInterface)));
63 }
64
68 public JNINativeInterface* Handle => (JNINativeInterface*)DangerousGetHandle();
69
74 protected override bool ReleaseHandle()
75 {
76 Marshal.FreeHGlobal(handle);
77 return true;
78 }
79
80 }
81
82 #region Delegates
83
84 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
85 delegate int GetMethodArgsDelegateType(JNIEnv* pEnv, jmethodID methodID, byte* sig);
86
88 delegate jclass DefineClassDelegateType(JNIEnv* pEnv, byte* name, jobject loader, jbyte* pbuf, jint length);
89 delegate jclass FindClassDelegateType(JNIEnv* pEnv, byte* name);
90
93
94 delegate jobject ToReflectedMethodDelegateType(JNIEnv* pEnv, jclass clazz_ignored, jmethodID method, jboolean isStatic);
95
98
99 delegate jobject ToReflectedFieldDelegateType(JNIEnv* pEnv, jclass clazz_ignored, jfieldID field, jboolean isStatic);
100
101 delegate jint ThrowDelegateType(JNIEnv* pEnv, jthrowable throwable);
102 delegate jint ThrowNewDelegateType(JNIEnv* pEnv, jclass clazz, byte* msg);
105 delegate void ExceptionClearDelegateType(JNIEnv* pEnv);
106 delegate void FatalErrorDelegateType(JNIEnv* pEnv, byte* msg);
107
108 delegate jint PushLocalFrameDelegateType(JNIEnv* pEnv, jint capacity);
110
112 delegate void DeleteGlobalRefDelegateType(JNIEnv* pEnv, jobject obj);
113 delegate void DeleteLocalRefDelegateType(JNIEnv* pEnv, jobject obj);
117
119 delegate jobject NewObjectADelegateType(JNIEnv* pEnv, jclass clazz, jmethodID methodID, JValue* args);
120
123
124 delegate jmethodID GetMethodIDDelegateType(JNIEnv* pEnv, jclass clazz, byte* name, byte* sig);
125
128 delegate jbyte CallByteMethodADelegateType(JNIEnv* pEnv, jobject obj, jmethodID methodID, JValue* args);
129 delegate jchar CallCharMethodADelegateType(JNIEnv* pEnv, jobject obj, jmethodID methodID, JValue* args);
130 delegate jshort CallShortMethodADelegateType(JNIEnv* pEnv, jobject obj, jmethodID methodID, JValue* args);
131 delegate jint CallIntMethodADelegateType(JNIEnv* pEnv, jobject obj, jmethodID methodID, JValue* args);
132 delegate jlong CallLongMethodADelegateType(JNIEnv* pEnv, jobject obj, jmethodID methodID, JValue* args);
133 delegate jfloat CallFloatMethodADelegateType(JNIEnv* pEnv, jobject obj, jmethodID methodID, JValue* args);
135 delegate void CallVoidMethodADelegateType(JNIEnv* pEnv, jobject obj, jmethodID methodID, JValue* args);
136
142 delegate jint CallNonvirtualIntMethodADelegateType(JNIEnv* pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue* args);
146 delegate void CallNonvirtualVoidMethodADelegateType(JNIEnv* pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue* args);
147
148 delegate jfieldID GetFieldIDDelegateType(JNIEnv* pEnv, jclass clazz, byte* name, byte* sig);
149
152 delegate jbyte GetByteFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID);
153 delegate jchar GetCharFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID);
155 delegate jint GetIntFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID);
156 delegate jlong GetLongFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID);
159
160 delegate void SetObjectFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jobject val);
161 delegate void SetBooleanFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jboolean val);
162 delegate void SetByteFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jbyte val);
163 delegate void SetCharFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jchar val);
164 delegate void SetShortFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jshort val);
165 delegate void SetIntFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jint val);
166 delegate void SetLongFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jlong val);
167 delegate void SetFloatFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jfloat val);
168 delegate void SetDoubleFieldDelegateType(JNIEnv* pEnv, jobject obj, jfieldID fieldID, jdouble val);
169
170 delegate jmethodID GetStaticMethodIDDelegateType(JNIEnv* pEnv, jclass clazz, byte* name, byte* sig);
171
174 delegate jbyte CallStaticByteMethodADelegateType(JNIEnv* pEnv, jclass clazz, jmethodID methodID, JValue* args);
175 delegate jchar CallStaticCharMethodADelegateType(JNIEnv* pEnv, jclass clazz, jmethodID methodID, JValue* args);
177 delegate jint CallStaticIntMethodADelegateType(JNIEnv* pEnv, jclass clazz, jmethodID methodID, JValue* args);
178 delegate jlong CallStaticLongMethodADelegateType(JNIEnv* pEnv, jclass clazz, jmethodID methodID, JValue* args);
181 delegate void CallStaticVoidMethodADelegateType(JNIEnv* pEnv, jclass clazz, jmethodID methodID, JValue* args);
182
183 delegate jfieldID GetStaticFieldIDDelegateType(JNIEnv* pEnv, jclass clazz, byte* name, byte* sig);
184
190 delegate jint GetStaticIntFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID);
194
195 delegate void SetStaticObjectFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jobject val);
196 delegate void SetStaticBooleanFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jboolean val);
197 delegate void SetStaticByteFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jbyte val);
198 delegate void SetStaticCharFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jchar val);
199 delegate void SetStaticShortFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jshort val);
200 delegate void SetStaticIntFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jint val);
201 delegate void SetStaticLongFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jlong val);
202 delegate void SetStaticFloatFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jfloat val);
203 delegate void SetStaticDoubleFieldDelegateType(JNIEnv* pEnv, jclass clazz, jfieldID fieldID, jdouble val);
204
205 delegate jstring NewStringDelegateType(JNIEnv* pEnv, jchar* unicode, int len);
208 delegate void ReleaseStringCharsDelegateType(JNIEnv* pEnv, jstring str, jchar* chars);
209
210 delegate jobject NewStringUTFDelegateType(JNIEnv* pEnv, byte* bytes);
212 delegate byte* GetStringUTFCharsDelegateType(JNIEnv* pEnv, jstring @string, jboolean* isCopy);
213 delegate void ReleaseStringUTFCharsDelegateType(JNIEnv* pEnv, jstring @string, byte* utf);
214
216
219 delegate void SetObjectArrayElementDelegateType(JNIEnv* pEnv, jarray array, jsize index, jobject val);
220
229
238
240 delegate void ReleaseByteArrayElementsDelegateType(JNIEnv* pEnv, jbyteArray array, jbyte* elems, jint mode);
241 delegate void ReleaseCharArrayElementsDelegateType(JNIEnv* pEnv, jcharArray array, jchar* elems, jint mode);
242 delegate void ReleaseShortArrayElementsDelegateType(JNIEnv* pEnv, jshortArray array, jshort* elems, jint mode);
243 delegate void ReleaseIntArrayElementsDelegateType(JNIEnv* pEnv, jintArray array, jint* elems, jint mode);
244 delegate void ReleaseLongArrayElementsDelegateType(JNIEnv* pEnv, jlongArray array, jlong* elems, jint mode);
245 delegate void ReleaseFloatArrayElementsDelegateType(JNIEnv* pEnv, jfloatArray array, jfloat* elems, jint mode);
246 delegate void ReleaseDoubleArrayElementsDelegateType(JNIEnv* pEnv, jdoubleArray array, jdouble* elems, jint mode);
247
248 delegate void GetBooleanArrayRegionDelegateType(JNIEnv* pEnv, jbooleanArray array, jsize start, jsize len, jboolean* buf);
249 delegate void GetByteArrayRegionDelegateType(JNIEnv* pEnv, jbyteArray array, jsize start, jsize len, jbyte* buf);
250 delegate void GetCharArrayRegionDelegateType(JNIEnv* pEnv, jcharArray array, jsize start, jsize len, jchar* buf);
251 delegate void GetShortArrayRegionDelegateType(JNIEnv* pEnv, jshortArray array, jsize start, jsize len, jshort* buf);
252 delegate void GetIntArrayRegionDelegateType(JNIEnv* pEnv, jintArray array, jsize start, jsize len, jint* buf);
253 delegate void GetLongArrayRegionDelegateType(JNIEnv* pEnv, jlongArray array, jsize start, jsize len, jlong* buf);
254 delegate void GetFloatArrayRegionDelegateType(JNIEnv* pEnv, jfloatArray array, jsize start, jsize len, jfloat* buf);
255 delegate void GetDoubleArrayRegionDelegateType(JNIEnv* pEnv, jdoubleArray array, jsize start, jsize len, jdouble* buf);
256
257 delegate void SetBooleanArrayRegionDelegateType(JNIEnv* pEnv, jbooleanArray array, jsize start, jsize len, jboolean* buf);
258 delegate void SetByteArrayRegionDelegateType(JNIEnv* pEnv, jbyteArray array, jsize start, jsize len, jbyte* buf);
259 delegate void SetCharArrayRegionDelegateType(JNIEnv* pEnv, jcharArray array, jsize start, jsize len, jchar* buf);
260 delegate void SetShortArrayRegionDelegateType(JNIEnv* pEnv, jshortArray array, jsize start, jsize len, jshort* buf);
261 delegate void SetIntArrayRegionDelegateType(JNIEnv* pEnv, jintArray array, jsize start, jsize len, jint* buf);
262 delegate void SetLongArrayRegionDelegateType(JNIEnv* pEnv, jlongArray array, jsize start, jsize len, jlong* buf);
263 delegate void SetFloatArrayRegionDelegateType(JNIEnv* pEnv, jfloatArray array, jsize start, jsize len, jfloat* buf);
264 delegate void SetDoubleArrayRegionDelegateType(JNIEnv* pEnv, jdoubleArray array, jsize start, jsize len, jdouble* buf);
265
266 delegate jint RegisterNativesDelegateType(JNIEnv* pEnv, jclass clazz, JNIEnv.JNINativeMethod* methods, jint nMethods);
268
271
272 delegate jint GetJavaVMDelegateType(JNIEnv* pEnv, JavaVM** ppJavaVM);
273
274 delegate void GetStringRegionDelegateType(JNIEnv* pEnv, jstring str, jsize start, jsize len, jchar* buf);
275 delegate void GetStringUTFRegionDelegateType(JNIEnv* pEnv, jstring str, jsize start, jsize len, byte* buf);
276
277 delegate void* GetPrimitiveArrayCriticalDelegateType(JNIEnv* pEnv, jarray array, jboolean* isCopy);
278 delegate void ReleasePrimitiveArrayCriticalDelegateType(JNIEnv* pEnv, jarray array, void* carray, jint mode);
279
281 delegate void ReleaseStringCriticalDelegateType(JNIEnv* pEnv, jstring str, jchar* cstring);
282
285
287
288 delegate jobject NewDirectByteBufferDelegateType(JNIEnv* pEnv, IntPtr address, jlong capacity);
291
293
294 #endregion
295
296 static readonly LibJvm libjvm = LibJvm.Instance;
298
303
304 #region Delegates
305
307
310 readonly static FindClassDelegateType FindClassDelegate = JNIEnv.FindClass;
311
314
316
319
321
322 readonly static ThrowDelegateType ThrowDelegate = JNIEnv.Throw;
323 readonly static ThrowNewDelegateType ThrowNewDelegate = JNIEnv.ThrowNew;
328
331
338
341
344
346
357
368
370
380
390
392
403
414
424
425 readonly static NewStringDelegateType NewStringDelegate = JNIEnv.NewString;
429
434
436
440
449
458
467
476
485
488
491
492 readonly static GetJavaVMDelegateType GetJavaVMDelegate = JNIEnv.GetJavaVM;
493
496
499
502
505
507
511
513
514 #endregion
515
522 static nint GetLibJvmFunctionHandle(string name, int argl = -1)
523 {
524 if (libjvm.Handle.GetExport(name, argl).Handle is nint h and not 0)
525 return h;
526 else
527 throw new InternalException($"Cannot find libjvm native method '{name}'.");
528 }
529
534 {
535 JNIVM.jvmCreated = true;
536
537 Handle->reserved0 = (void*)Marshal.GetFunctionPointerForDelegate(GetMethodArgsDelegate);
538 Handle->reserved1 = null;
539 Handle->reserved2 = null;
540
541 Handle->reserved3 = null;
542 Handle->GetVersion = (void*)Marshal.GetFunctionPointerForDelegate(GetVersionDelegate);
543
544 Handle->DefineClass = (void*)Marshal.GetFunctionPointerForDelegate(DefineClassDelegate);
545 Handle->FindClass = (void*)Marshal.GetFunctionPointerForDelegate(FindClassDelegate);
546
547 Handle->FromReflectedMethod = (void*)Marshal.GetFunctionPointerForDelegate(FromReflectedMethodDelegate);
548 Handle->FromReflectedField = (void*)Marshal.GetFunctionPointerForDelegate(FromReflectedFieldDelegate);
549 Handle->ToReflectedMethod = (void*)Marshal.GetFunctionPointerForDelegate(ToReflectedMethodDelegate);
550
551 Handle->GetSuperclass = (void*)Marshal.GetFunctionPointerForDelegate(GetSuperclassDelegate);
552 Handle->IsAssignableFrom = (void*)Marshal.GetFunctionPointerForDelegate(IsAssignableFromDelegate);
553
554 Handle->ToReflectedField = (void*)Marshal.GetFunctionPointerForDelegate(ToReflectedFieldDelegate);
555
556 Handle->Throw = (void*)Marshal.GetFunctionPointerForDelegate(ThrowDelegate);
557 Handle->ThrowNew = (void*)Marshal.GetFunctionPointerForDelegate(ThrowNewDelegate);
558 Handle->ExceptionOccurred = (void*)Marshal.GetFunctionPointerForDelegate(ExceptionOccurredDelegate);
559 Handle->ExceptionDescribe = (void*)Marshal.GetFunctionPointerForDelegate(ExceptionDescribeDelegate);
560 Handle->ExceptionClear = (void*)Marshal.GetFunctionPointerForDelegate(ExceptionClearDelegate);
561 Handle->FatalError = (void*)Marshal.GetFunctionPointerForDelegate(FatalErrorDelegate);
562
563 Handle->PushLocalFrame = (void*)Marshal.GetFunctionPointerForDelegate(PushLocalFrameDelegate);
564 Handle->PopLocalFrame = (void*)Marshal.GetFunctionPointerForDelegate(PopLocalFrameDelegate);
565
566 Handle->NewGlobalRef = (void*)Marshal.GetFunctionPointerForDelegate(NewGlobalRefDelegate);
567 Handle->DeleteGlobalRef = (void*)Marshal.GetFunctionPointerForDelegate(DeleteGlobalRefDelegate);
568 Handle->DeleteLocalRef = (void*)Marshal.GetFunctionPointerForDelegate(DeleteLocalRefDelegate);
569 Handle->IsSameObject = (void*)Marshal.GetFunctionPointerForDelegate(IsSameObjectDelegate);
570
571 Handle->NewLocalRef = (void*)Marshal.GetFunctionPointerForDelegate(NewLocalRefDelegate);
572 Handle->EnsureLocalCapacity = (void*)Marshal.GetFunctionPointerForDelegate(EnsureLocalCapacityDelegate);
573
574 Handle->AllocObject = (void*)Marshal.GetFunctionPointerForDelegate(AllocObjectDelegate);
575 Handle->NewObject = (void*)GetLibJvmFunctionHandle("__JNI_NewObject");
576 Handle->NewObjectV = (void*)GetLibJvmFunctionHandle("__JNI_NewObjectV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
577 Handle->NewObjectA = (void*)Marshal.GetFunctionPointerForDelegate(NewObjectADelegate);
578
579 Handle->GetObjectClass = (void*)Marshal.GetFunctionPointerForDelegate(GetObjectClassDelegate);
580 Handle->IsInstanceOf = (void*)Marshal.GetFunctionPointerForDelegate(IsInstanceOfDelegate);
581
582 Handle->GetMethodID = (void*)Marshal.GetFunctionPointerForDelegate(GetMethodIDDelegate);
583
584 Handle->CallObjectMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallObjectMethod");
585 Handle->CallObjectMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallObjectMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
586 Handle->CallObjectMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallObjectMethodADelegate);
587
588 Handle->CallBooleanMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallBooleanMethod");
589 Handle->CallBooleanMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallBooleanMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
590 Handle->CallBooleanMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallBooleanMethodADelegate);
591
592 Handle->CallByteMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallByteMethod");
593 Handle->CallByteMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallByteMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
594 Handle->CallByteMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallByteMethodADelegate);
595
596 Handle->CallCharMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallCharMethod");
597 Handle->CallCharMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallCharMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
598 Handle->CallCharMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallCharMethodADelegate);
599
600 Handle->CallShortMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallShortMethod");
601 Handle->CallShortMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallShortMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
602 Handle->CallShortMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallShortMethodADelegate);
603
604 Handle->CallIntMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallIntMethod");
605 Handle->CallIntMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallIntMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
606 Handle->CallIntMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallIntMethodADelegate);
607
608 Handle->CallLongMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallLongMethod");
609 Handle->CallLongMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallLongMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
610 Handle->CallLongMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallLongMethodADelegate);
611
612 Handle->CallFloatMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallFloatMethod");
613 Handle->CallFloatMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallFloatMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
614 Handle->CallFloatMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallFloatMethodADelegate);
615
616 Handle->CallDoubleMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallDoubleMethod");
617 Handle->CallDoubleMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallDoubleMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
618 Handle->CallDoubleMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallDoubleMethodADelegate);
619
620 Handle->CallVoidMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallVoidMethod");
621 Handle->CallVoidMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallVoidMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
622 Handle->CallVoidMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallVoidMethodADelegate);
623
624 Handle->CallNonvirtualObjectMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualObjectMethod");
625 Handle->CallNonvirtualObjectMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualObjectMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
626 Handle->CallNonvirtualObjectMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualObjectMethodADelegate);
627
628 Handle->CallNonvirtualBooleanMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualBooleanMethod");
629 Handle->CallNonvirtualBooleanMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualBooleanMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
630 Handle->CallNonvirtualBooleanMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualBooleanMethodADelegate);
631
632 Handle->CallNonvirtualByteMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualByteMethod");
633 Handle->CallNonvirtualByteMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualByteMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
634 Handle->CallNonvirtualByteMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualByteMethodADelegate);
635
636 Handle->CallNonvirtualCharMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualCharMethod");
637 Handle->CallNonvirtualCharMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualCharMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
638 Handle->CallNonvirtualCharMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualCharMethodADelegate);
639
640 Handle->CallNonvirtualShortMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualShortMethod");
641 Handle->CallNonvirtualShortMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualShortMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
642 Handle->CallNonvirtualShortMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualShortMethodADelegate);
643
644 Handle->CallNonvirtualIntMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualIntMethod");
645 Handle->CallNonvirtualIntMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualIntMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
646 Handle->CallNonvirtualIntMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualIntMethodADelegate);
647
648 Handle->CallNonvirtualLongMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualLongMethod");
649 Handle->CallNonvirtualLongMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualLongMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
650 Handle->CallNonvirtualLongMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualLongMethodADelegate);
651
652 Handle->CallNonvirtualFloatMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualFloatMethod");
653 Handle->CallNonvirtualFloatMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualFloatMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
654 Handle->CallNonvirtualFloatMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualFloatMethodADelegate);
655
656 Handle->CallNonvirtualDoubleMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualDoubleMethod");
657 Handle->CallNonvirtualDoubleMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualDoubleMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
658 Handle->CallNonvirtualDoubleMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualDoubleMethodADelegate);
659
660 Handle->CallNonvirtualVoidMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualVoidMethod");
661 Handle->CallNonvirtualVoidMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallNonvirtualVoidMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jobject) + sizeof(jmethodID) + sizeof(JValue*));
662 Handle->CallNonvirtualVoidMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallNonvirtualVoidMethodADelegate);
663
664 Handle->GetFieldID = (void*)Marshal.GetFunctionPointerForDelegate(GetFieldIDDelegate);
665
666 Handle->GetObjectField = (void*)Marshal.GetFunctionPointerForDelegate(GetObjectFieldDelegate);
667 Handle->GetBooleanField = (void*)Marshal.GetFunctionPointerForDelegate(GetBooleanFieldDelegate);
668 Handle->GetByteField = (void*)Marshal.GetFunctionPointerForDelegate(GetByteFieldDelegate);
669 Handle->GetCharField = (void*)Marshal.GetFunctionPointerForDelegate(GetCharFieldDelegate);
670 Handle->GetShortField = (void*)Marshal.GetFunctionPointerForDelegate(GetShortFieldDelegate);
671 Handle->GetIntField = (void*)Marshal.GetFunctionPointerForDelegate(GetIntFieldDelegate);
672 Handle->GetLongField = (void*)Marshal.GetFunctionPointerForDelegate(GetLongFieldDelegate);
673 Handle->GetFloatField = (void*)Marshal.GetFunctionPointerForDelegate(GetFloatFieldDelegate);
674 Handle->GetDoubleField = (void*)Marshal.GetFunctionPointerForDelegate(GetDoubleFieldDelegate);
675
676 Handle->SetObjectField = (void*)Marshal.GetFunctionPointerForDelegate(SetObjectFieldDelegate);
677 Handle->SetBooleanField = (void*)Marshal.GetFunctionPointerForDelegate(SetBooleanFieldDelegate);
678 Handle->SetByteField = (void*)Marshal.GetFunctionPointerForDelegate(SetByteFieldDelegate);
679 Handle->SetCharField = (void*)Marshal.GetFunctionPointerForDelegate(SetCharFieldDelegate);
680 Handle->SetShortField = (void*)Marshal.GetFunctionPointerForDelegate(SetShortFieldDelegate);
681 Handle->SetIntField = (void*)Marshal.GetFunctionPointerForDelegate(SetIntFieldDelegate);
682 Handle->SetLongField = (void*)Marshal.GetFunctionPointerForDelegate(SetLongFieldDelegate);
683 Handle->SetFloatField = (void*)Marshal.GetFunctionPointerForDelegate(SetFloatFieldDelegate);
684 Handle->SetDoubleField = (void*)Marshal.GetFunctionPointerForDelegate(SetDoubleFieldDelegate);
685
686 Handle->GetStaticMethodID = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticMethodIDDelegate);
687
688 Handle->CallStaticObjectMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticObjectMethod");
689 Handle->CallStaticObjectMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticObjectMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
690 Handle->CallStaticObjectMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticObjectMethodADelegate);
691
692 Handle->CallStaticBooleanMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticBooleanMethod");
693 Handle->CallStaticBooleanMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticBooleanMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
694 Handle->CallStaticBooleanMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticBooleanMethodADelegate);
695
696 Handle->CallStaticByteMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticByteMethod");
697 Handle->CallStaticByteMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticByteMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
698 Handle->CallStaticByteMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticByteMethodADelegate);
699
700 Handle->CallStaticCharMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticCharMethod");
701 Handle->CallStaticCharMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticCharMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
702 Handle->CallStaticCharMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticCharMethodADelegate);
703
704 Handle->CallStaticShortMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticShortMethod");
705 Handle->CallStaticShortMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticShortMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
706 Handle->CallStaticShortMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticShortMethodADelegate);
707
708 Handle->CallStaticIntMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticIntMethod");
709 Handle->CallStaticIntMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticIntMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
710 Handle->CallStaticIntMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticIntMethodADelegate);
711
712 Handle->CallStaticLongMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticLongMethod");
713 Handle->CallStaticLongMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticLongMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
714 Handle->CallStaticLongMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticLongMethodADelegate);
715
716 Handle->CallStaticFloatMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticFloatMethod");
717 Handle->CallStaticFloatMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticFloatMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
718 Handle->CallStaticFloatMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticFloatMethodADelegate);
719
720 Handle->CallStaticDoubleMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticDoubleMethod");
721 Handle->CallStaticDoubleMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticDoubleMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
722 Handle->CallStaticDoubleMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticDoubleMethodADelegate);
723
724 Handle->CallStaticVoidMethod = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticVoidMethod");
725 Handle->CallStaticVoidMethodV = (void*)GetLibJvmFunctionHandle("__JNI_CallStaticVoidMethodV", sizeof(JNIEnv*) + sizeof(jclass) + sizeof(jmethodID) + sizeof(JValue*));
726 Handle->CallStaticVoidMethodA = (void*)Marshal.GetFunctionPointerForDelegate(CallStaticVoidMethodADelegate);
727
728 Handle->GetStaticFieldID = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticFieldIDDelegate);
729
730 Handle->GetStaticObjectField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticObjectFieldDelegate);
731 Handle->GetStaticBooleanField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticBooleanFieldDelegate);
732 Handle->GetStaticByteField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticByteFieldDelegate);
733 Handle->GetStaticCharField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticCharFieldDelegate);
734 Handle->GetStaticShortField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticShortFieldDelegate);
735 Handle->GetStaticIntField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticIntFieldDelegate);
736 Handle->GetStaticLongField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticLongFieldDelegate);
737 Handle->GetStaticFloatField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticFloatFieldDelegate);
738 Handle->GetStaticDoubleField = (void*)Marshal.GetFunctionPointerForDelegate(GetStaticDoubleFieldDelegate);
739
740 Handle->SetStaticObjectField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticObjectFieldDelegate);
741 Handle->SetStaticBooleanField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticBooleanFieldDelegate);
742 Handle->SetStaticByteField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticByteFieldDelegate);
743 Handle->SetStaticCharField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticCharFieldDelegate);
744 Handle->SetStaticShortField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticShortFieldDelegate);
745 Handle->SetStaticIntField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticIntFieldDelegate);
746 Handle->SetStaticLongField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticLongFieldDelegate);
747 Handle->SetStaticFloatField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticFloatFieldDelegate);
748 Handle->SetStaticDoubleField = (void*)Marshal.GetFunctionPointerForDelegate(SetStaticDoubleFieldDelegate);
749
750 Handle->NewString = (void*)Marshal.GetFunctionPointerForDelegate(NewStringDelegate);
751 Handle->GetStringLength = (void*)Marshal.GetFunctionPointerForDelegate(GetStringLengthDelegate);
752 Handle->GetStringChars = (void*)Marshal.GetFunctionPointerForDelegate(GetStringCharsDelegate);
753 Handle->ReleaseStringChars = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseStringCharsDelegate);
754
755 Handle->NewStringUTF = (void*)Marshal.GetFunctionPointerForDelegate(NewStringUTFDelegate);
756 Handle->GetStringUTFLength = (void*)Marshal.GetFunctionPointerForDelegate(GetStringUTFLengthDelegate);
757 Handle->GetStringUTFChars = (void*)Marshal.GetFunctionPointerForDelegate(GetStringUTFCharsDelegate);
758 Handle->ReleaseStringUTFChars = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseStringUTFCharsDelegate);
759
760 Handle->GetArrayLength = (void*)Marshal.GetFunctionPointerForDelegate(GetArrayLengthDelegate);
761
762 Handle->NewObjectArray = (void*)Marshal.GetFunctionPointerForDelegate(NewObjectArrayDelegate);
763 Handle->GetObjectArrayElement = (void*)Marshal.GetFunctionPointerForDelegate(GetObjectArrayElementDelegate);
764 Handle->SetObjectArrayElement = (void*)Marshal.GetFunctionPointerForDelegate(SetObjectArrayElementDelegate);
765
766 Handle->NewBooleanArray = (void*)Marshal.GetFunctionPointerForDelegate(NewBooleanArrayDelegate);
767 Handle->NewByteArray = (void*)Marshal.GetFunctionPointerForDelegate(NewByteArrayDelegate);
768 Handle->NewCharArray = (void*)Marshal.GetFunctionPointerForDelegate(NewCharArrayDelegate);
769 Handle->NewShortArray = (void*)Marshal.GetFunctionPointerForDelegate(NewShortArrayDelegate);
770 Handle->NewIntArray = (void*)Marshal.GetFunctionPointerForDelegate(NewIntArrayDelegate);
771 Handle->NewLongArray = (void*)Marshal.GetFunctionPointerForDelegate(NewLongArrayDelegate);
772 Handle->NewFloatArray = (void*)Marshal.GetFunctionPointerForDelegate(NewFloatArrayDelegate);
773 Handle->NewDoubleArray = (void*)Marshal.GetFunctionPointerForDelegate(NewDoubleArrayDelegate);
774
775 Handle->GetBooleanArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(GetBooleanArrayElementsDelegate);
776 Handle->GetByteArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(GetByteArrayElementsDelegate);
777 Handle->GetCharArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(GetCharArrayElementsDelegate);
778 Handle->GetShortArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(GetShortArrayElementsDelegate);
779 Handle->GetIntArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(GetIntArrayElementsDelegate);
780 Handle->GetLongArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(GetLongArrayElementsDelegate);
781 Handle->GetFloatArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(GetFloatArrayElementsDelegate);
782 Handle->GetDoubleArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(GetDoubleArrayElementsDelegate);
783
784 Handle->ReleaseBooleanArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseBooleanArrayElementsDelegate);
785 Handle->ReleaseByteArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseByteArrayElementsDelegate);
786 Handle->ReleaseCharArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseCharArrayElementsDelegate);
787 Handle->ReleaseShortArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseShortArrayElementsDelegate);
788 Handle->ReleaseIntArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseIntArrayElementsDelegate);
789 Handle->ReleaseLongArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseLongArrayElementsDelegate);
790 Handle->ReleaseFloatArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseFloatArrayElementsDelegate);
791 Handle->ReleaseDoubleArrayElements = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseDoubleArrayElementsDelegate);
792
793 Handle->GetBooleanArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetBooleanArrayRegionDelegate);
794 Handle->GetByteArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetByteArrayRegionDelegate);
795 Handle->GetCharArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetCharArrayRegionDelegate);
796 Handle->GetShortArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetShortArrayRegionDelegate);
797 Handle->GetIntArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetIntArrayRegionDelegate);
798 Handle->GetLongArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetLongArrayRegionDelegate);
799 Handle->GetFloatArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetFloatArrayRegionDelegate);
800 Handle->GetDoubleArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetDoubleArrayRegionDelegate);
801
802 Handle->SetBooleanArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(SetBooleanArrayRegionDelegate);
803 Handle->SetByteArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(SetByteArrayRegionDelegate);
804 Handle->SetCharArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(SetCharArrayRegionDelegate);
805 Handle->SetShortArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(SetShortArrayRegionDelegate);
806 Handle->SetIntArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(SetIntArrayRegionDelegate);
807 Handle->SetLongArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(SetLongArrayRegionDelegate);
808 Handle->SetFloatArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(SetFloatArrayRegionDelegate);
809 Handle->SetDoubleArrayRegion = (void*)Marshal.GetFunctionPointerForDelegate(SetDoubleArrayRegionDelegate);
810
811 Handle->RegisterNatives = (void*)Marshal.GetFunctionPointerForDelegate(RegisterNativesDelegate);
812 Handle->UnregisterNatives = (void*)Marshal.GetFunctionPointerForDelegate(UnregisterNativesDelegate);
813
814 Handle->MonitorEnter = (void*)Marshal.GetFunctionPointerForDelegate(MonitorEnterDelegate);
815 Handle->MonitorExit = (void*)Marshal.GetFunctionPointerForDelegate(MonitorExitDelegate);
816
817 Handle->GetJavaVM = (void*)Marshal.GetFunctionPointerForDelegate(GetJavaVMDelegate);
818
819 Handle->GetStringRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetStringRegionDelegate);
820 Handle->GetStringUTFRegion = (void*)Marshal.GetFunctionPointerForDelegate(GetStringUTFRegionDelegate);
821
822 Handle->GetPrimitiveArrayCritical = (void*)Marshal.GetFunctionPointerForDelegate(GetPrimitiveArrayCriticalDelegate);
823 Handle->ReleasePrimitiveArrayCritical = (void*)Marshal.GetFunctionPointerForDelegate(ReleasePrimitiveArrayCriticalDelegate);
824
825 Handle->GetStringCritical = (void*)Marshal.GetFunctionPointerForDelegate(GetStringCriticalDelegate);
826 Handle->ReleaseStringCritical = (void*)Marshal.GetFunctionPointerForDelegate(ReleaseStringCriticalDelegate);
827
828 Handle->NewWeakGlobalRef = (void*)Marshal.GetFunctionPointerForDelegate(NewWeakGlobalRefDelegate);
829 Handle->DeleteWeakGlobalRef = (void*)Marshal.GetFunctionPointerForDelegate(DeleteWeakGlobalRefDelegate);
830
831 Handle->ExceptionCheck = (void*)Marshal.GetFunctionPointerForDelegate(ExceptionCheckDelegate);
832
833 Handle->NewDirectByteBuffer = (void*)Marshal.GetFunctionPointerForDelegate(NewDirectByteBufferDelegate);
834 Handle->GetDirectBufferAddress = (void*)Marshal.GetFunctionPointerForDelegate(GetDirectBufferAddressDelegate);
835 Handle->GetDirectBufferCapacity = (void*)Marshal.GetFunctionPointerForDelegate(GetDirectBufferCapacityDelegate);
836
837 Handle->GetObjectRefType = (void*)Marshal.GetFunctionPointerForDelegate(GetObjectRefTypeDelegate);
838 }
839
840 public void* reserved0;
841 public void* reserved1;
842 public void* reserved2;
843
844 public void* reserved3;
845 public void* GetVersion;
846 public void* DefineClass;
847 public void* FindClass;
848
850 public void* FromReflectedField;
851
852 public void* ToReflectedMethod;
853
854 public void* GetSuperclass;
855 public void* IsAssignableFrom;
856
857 public void* ToReflectedField;
858
859 public void* Throw;
860 public void* ThrowNew;
861 public void* ExceptionOccurred;
862 public void* ExceptionDescribe;
863 public void* ExceptionClear;
864 public void* FatalError;
865
866 public void* PushLocalFrame;
867 public void* PopLocalFrame;
868
869 public void* NewGlobalRef;
870 public void* DeleteGlobalRef;
871 public void* DeleteLocalRef;
872 public void* IsSameObject;
873 public void* NewLocalRef;
875
876 public void* AllocObject;
877 public void* NewObject;
878 public void* NewObjectV;
879 public void* NewObjectA;
880
881 public void* GetObjectClass;
882 public void* IsInstanceOf;
883
884 public void* GetMethodID;
885
886 public void* CallObjectMethod;
887 public void* CallObjectMethodV;
888 public void* CallObjectMethodA;
889
890 public void* CallBooleanMethod;
891 public void* CallBooleanMethodV;
892 public void* CallBooleanMethodA;
893
894 public void* CallByteMethod;
895 public void* CallByteMethodV;
896 public void* CallByteMethodA;
897
898 public void* CallCharMethod;
899 public void* CallCharMethodV;
900 public void* CallCharMethodA;
901
902 public void* CallShortMethod;
903 public void* CallShortMethodV;
904 public void* CallShortMethodA;
905
906 public void* CallIntMethod;
907 public void* CallIntMethodV;
908 public void* CallIntMethodA;
909
910 public void* CallLongMethod;
911 public void* CallLongMethodV;
912 public void* CallLongMethodA;
913
914 public void* CallFloatMethod;
915 public void* CallFloatMethodV;
916 public void* CallFloatMethodA;
917
918 public void* CallDoubleMethod;
919 public void* CallDoubleMethodV;
920 public void* CallDoubleMethodA;
921
922 public void* CallVoidMethod;
923 public void* CallVoidMethodV;
924 public void* CallVoidMethodA;
925
929
933
937
941
945
949
953
957
961
965
966 public void* GetFieldID;
967
968 public void* GetObjectField;
969 public void* GetBooleanField;
970 public void* GetByteField;
971 public void* GetCharField;
972 public void* GetShortField;
973 public void* GetIntField;
974 public void* GetLongField;
975 public void* GetFloatField;
976 public void* GetDoubleField;
977
978 public void* SetObjectField;
979 public void* SetBooleanField;
980 public void* SetByteField;
981 public void* SetCharField;
982 public void* SetShortField;
983 public void* SetIntField;
984 public void* SetLongField;
985 public void* SetFloatField;
986 public void* SetDoubleField;
987
988 public void* GetStaticMethodID;
989
993
997
1001
1005
1009
1013
1017
1021
1025
1029
1030 public void* GetStaticFieldID;
1036 public void* GetStaticIntField;
1040
1046 public void* SetStaticIntField;
1050
1051 public void* NewString;
1052 public void* GetStringLength;
1053 public void* GetStringChars;
1055
1056 public void* NewStringUTF;
1058 public void* GetStringUTFChars;
1060
1061 public void* GetArrayLength;
1062
1063 public void* NewObjectArray;
1066
1067 public void* NewBooleanArray;
1068 public void* NewByteArray;
1069 public void* NewCharArray;
1070 public void* NewShortArray;
1071 public void* NewIntArray;
1072 public void* NewLongArray;
1073 public void* NewFloatArray;
1074 public void* NewDoubleArray;
1075
1084
1093
1098 public void* GetIntArrayRegion;
1102
1107 public void* SetIntArrayRegion;
1111
1112 public void* RegisterNatives;
1113 public void* UnregisterNatives;
1114
1115 public void* MonitorEnter;
1116 public void* MonitorExit;
1117
1118 public void* GetJavaVM;
1119
1120 public void* GetStringRegion;
1122
1125
1126 public void* GetStringCritical;
1128
1129 public void* NewWeakGlobalRef;
1131
1132 public void* ExceptionCheck;
1133
1137
1138 public void* GetObjectRefType;
1139
1140 }
1141
1142#endif
1143
1144}
System.Runtime.InteropServices.CallingConvention CallingConvention
Definition Signature.cs:35
Represents an internal error that occurred within IKVM.
Maintains a JNINativeInterface structure in memory.
JNINativeInterface * Handle
Gets the handle to the JNIEnv structure.
static readonly JNINativeInterfaceHandle Instance
Gets a reference to the JNINativeInterface instance.
System.Int16 jshort
Definition JNIEnv.cs:47
System.IntPtr jfieldID
System.Single jfloat
Definition JNIEnv.cs:44
System.IntPtr jfloatArray
System.Double jdouble
Definition JNIEnv.cs:43
System.IntPtr jcharArray
System.IntPtr jstring
System.SByte jboolean
System.IntPtr jthrowable
System.IntPtr jbooleanArray
System.IntPtr jobjectArray
System.SByte jbyte
Definition JNIEnv.cs:41
System.IntPtr jlongArray
System.IntPtr jshortArray
System.Int32 jint
Definition JavaVM.cs:35
System.UInt16 jchar
Definition JNIEnv.cs:42
System.IntPtr jbyteArray
System.IntPtr jmethodID
System.Int64 jlong
Definition JNIEnv.cs:46
System.Int32 jsize
Definition JNIEnv.cs:48
System.IntPtr jdoubleArray
System.IntPtr jintArray
System.IntPtr jobject
static nint NewObjectA(JNIEnv *pEnv, nint clazz, nint methodID, JValue *args)
Definition JNIEnv.cs:752
Manged implementation of the JNINativeInterface structure.
static readonly CallStaticBooleanMethodADelegateType CallStaticBooleanMethodADelegate
static readonly GetDoubleArrayRegionDelegateType GetDoubleArrayRegionDelegate
delegate void SetShortFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jshort val)
delegate jmethodID FromReflectedMethodDelegateType(JNIEnv *pEnv, jmethodID methodID)
static readonly CallNonvirtualLongMethodADelegateType CallNonvirtualLongMethodADelegate
delegate void ReleaseCharArrayElementsDelegateType(JNIEnv *pEnv, jcharArray array, jchar *elems, jint mode)
delegate jint UnregisterNativesDelegateType(JNIEnv *pEnv, jclass clazz)
delegate void SetDoubleArrayRegionDelegateType(JNIEnv *pEnv, jdoubleArray array, jsize start, jsize len, jdouble *buf)
static readonly GetStaticByteFieldDelegateType GetStaticByteFieldDelegate
static readonly GetMethodIDDelegateType GetMethodIDDelegate
delegate void CallVoidMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
delegate void SetStaticByteFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jbyte val)
delegate void ReleaseByteArrayElementsDelegateType(JNIEnv *pEnv, jbyteArray array, jbyte *elems, jint mode)
delegate jint MonitorExitDelegateType(JNIEnv *pEnv, jobject obj)
static readonly ReleasePrimitiveArrayCriticalDelegateType ReleasePrimitiveArrayCriticalDelegate
static readonly NewLocalRefDelegateType NewLocalRefDelegate
delegate jshort CallStaticShortMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
delegate jboolean GetStaticBooleanFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
static readonly SetStaticLongFieldDelegateType SetStaticLongFieldDelegate
static readonly GetLongFieldDelegateType GetLongFieldDelegate
static readonly GetStringRegionDelegateType GetStringRegionDelegate
delegate jlong CallLongMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
static readonly IsInstanceOfDelegateType IsInstanceOfDelegate
static readonly CallNonvirtualShortMethodADelegateType CallNonvirtualShortMethodADelegate
delegate jobject CallNonvirtualObjectMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
delegate void SetStaticShortFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jshort val)
delegate jint MonitorEnterDelegateType(JNIEnv *pEnv, jobject obj)
delegate jboolean CallBooleanMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
delegate jstring NewStringDelegateType(JNIEnv *pEnv, jchar *unicode, int len)
static readonly CallObjectMethodADelegateType CallObjectMethodADelegate
delegate jobject ToReflectedFieldDelegateType(JNIEnv *pEnv, jclass clazz_ignored, jfieldID field, jboolean isStatic)
delegate jint GetIntFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
delegate void DeleteWeakGlobalRefDelegateType(JNIEnv *pEnv, jweak obj)
static readonly GetStringCriticalDelegateType GetStringCriticalDelegate
static readonly GetIntFieldDelegateType GetIntFieldDelegate
static readonly ReleaseIntArrayElementsDelegateType ReleaseIntArrayElementsDelegate
delegate jbyte CallByteMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
delegate jint ThrowDelegateType(JNIEnv *pEnv, jthrowable throwable)
delegate void SetObjectFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jobject val)
static readonly GetDoubleArrayElementsDelegateType GetDoubleArrayElementsDelegate
delegate void SetStaticBooleanFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jboolean val)
delegate jobject ToReflectedMethodDelegateType(JNIEnv *pEnv, jclass clazz_ignored, jmethodID method, jboolean isStatic)
static readonly GetByteArrayRegionDelegateType GetByteArrayRegionDelegate
static readonly SetCharArrayRegionDelegateType SetCharArrayRegionDelegate
static readonly SetDoubleArrayRegionDelegateType SetDoubleArrayRegionDelegate
delegate jint PushLocalFrameDelegateType(JNIEnv *pEnv, jint capacity)
delegate void ReleaseDoubleArrayElementsDelegateType(JNIEnv *pEnv, jdoubleArray array, jdouble *elems, jint mode)
delegate jboolean CallStaticBooleanMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
static readonly SetCharFieldDelegateType SetCharFieldDelegate
delegate jshort * GetShortArrayElementsDelegateType(JNIEnv *pEnv, jshortArray array, jboolean *isCopy)
delegate jfloat CallNonvirtualFloatMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
static readonly SetStaticCharFieldDelegateType SetStaticCharFieldDelegate
delegate jboolean ExceptionCheckDelegateType(JNIEnv *pEnv)
delegate jchar GetCharFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
static readonly UnregisterNativesDelegateType UnregisterNativesDelegate
delegate jobject PopLocalFrameDelegateType(JNIEnv *pEnv, jobject result)
static readonly NewByteArrayDelegateType NewByteArrayDelegate
static readonly ThrowDelegateType ThrowDelegate
delegate jmethodID GetStaticMethodIDDelegateType(JNIEnv *pEnv, jclass clazz, byte *name, byte *sig)
delegate void SetFloatFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jfloat val)
static readonly NewObjectArrayDelegateType NewObjectArrayDelegate
delegate jint CallIntMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
delegate jfloatArray NewFloatArrayDelegateType(JNIEnv *pEnv, jsize len)
delegate jchar CallStaticCharMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
static readonly ExceptionClearDelegateType ExceptionClearDelegate
static readonly PushLocalFrameDelegateType PushLocalFrameDelegate
static readonly NewDoubleArrayDelegateType NewDoubleArrayDelegate
delegate jchar * GetCharArrayElementsDelegateType(JNIEnv *pEnv, jcharArray array, jboolean *isCopy)
delegate jint CallStaticIntMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
static readonly IsSameObjectDelegateType IsSameObjectDelegate
delegate void GetByteArrayRegionDelegateType(JNIEnv *pEnv, jbyteArray array, jsize start, jsize len, jbyte *buf)
static readonly GetCharFieldDelegateType GetCharFieldDelegate
static readonly GetStaticIntFieldDelegateType GetStaticIntFieldDelegate
delegate jlong CallStaticLongMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
delegate void DeleteLocalRefDelegateType(JNIEnv *pEnv, jobject obj)
delegate jshort CallNonvirtualShortMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
static readonly ReleaseShortArrayElementsDelegateType ReleaseShortArrayElementsDelegate
static readonly GetBooleanFieldDelegateType GetBooleanFieldDelegate
static readonly GetShortArrayElementsDelegateType GetShortArrayElementsDelegate
static readonly ReleaseDoubleArrayElementsDelegateType ReleaseDoubleArrayElementsDelegate
delegate jobject NewLocalRefDelegateType(JNIEnv *pEnv, jobject obj)
delegate void SetBooleanArrayRegionDelegateType(JNIEnv *pEnv, jbooleanArray array, jsize start, jsize len, jboolean *buf)
delegate jdouble * GetDoubleArrayElementsDelegateType(JNIEnv *pEnv, jdoubleArray array, jboolean *isCopy)
static readonly ToReflectedFieldDelegateType ToReflectedFieldDelegate
static readonly GetMethodArgsDelegateType GetMethodArgsDelegate
delegate void SetFloatArrayRegionDelegateType(JNIEnv *pEnv, jfloatArray array, jsize start, jsize len, jfloat *buf)
static readonly NewBooleanArrayDelegateType NewBooleanArrayDelegate
static readonly CallStaticDoubleMethodADelegateType CallStaticDoubleMethodADelegate
static readonly DeleteWeakGlobalRefDelegateType DeleteWeakGlobalRefDelegate
static readonly EnsureLocalCapacityDelegateType EnsureLocalCapacityDelegate
static readonly ReleaseStringUTFCharsDelegateType ReleaseStringUTFCharsDelegate
delegate jshort CallShortMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
delegate void ReleaseIntArrayElementsDelegateType(JNIEnv *pEnv, jintArray array, jint *elems, jint mode)
delegate jbyteArray NewByteArrayDelegateType(JNIEnv *pEnv, jsize len)
delegate jboolean IsSameObjectDelegateType(JNIEnv *pEnv, jobject obj1, jobject obj2)
static readonly GetStaticFieldIDDelegateType GetStaticFieldIDDelegate
delegate void ReleaseShortArrayElementsDelegateType(JNIEnv *pEnv, jshortArray array, jshort *elems, jint mode)
static readonly NewIntArrayDelegateType NewIntArrayDelegate
delegate jbyte CallStaticByteMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
static readonly GetStaticBooleanFieldDelegateType GetStaticBooleanFieldDelegate
delegate void SetStaticFloatFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jfloat val)
delegate jdouble CallNonvirtualDoubleMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
delegate jint * GetIntArrayElementsDelegateType(JNIEnv *pEnv, jintArray array, jboolean *isCopy)
static readonly CallCharMethodADelegateType CallCharMethodADelegate
static readonly FindClassDelegateType FindClassDelegate
static readonly NewStringDelegateType NewStringDelegate
static readonly NewLongArrayDelegateType NewLongArrayDelegate
static readonly ReleaseCharArrayElementsDelegateType ReleaseCharArrayElementsDelegate
static readonly GetVersionDelegateType GetVersionDelegate
static readonly CallLongMethodADelegateType CallLongMethodADelegate
static readonly SetFloatArrayRegionDelegateType SetFloatArrayRegionDelegate
static readonly NewDirectByteBufferDelegateType NewDirectByteBufferDelegate
static readonly SetIntArrayRegionDelegateType SetIntArrayRegionDelegate
delegate void SetLongFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jlong val)
delegate jsize GetArrayLengthDelegateType(JNIEnv *pEnv, jarray array)
static readonly CallIntMethodADelegateType CallIntMethodADelegate
static readonly CallShortMethodADelegateType CallShortMethodADelegate
delegate jweak NewWeakGlobalRefDelegateType(JNIEnv *pEnv, jobject obj)
static readonly GetObjectRefTypeDelegateType GetObjectRefTypeDelegate
delegate void GetStringRegionDelegateType(JNIEnv *pEnv, jstring str, jsize start, jsize len, jchar *buf)
delegate jint ThrowNewDelegateType(JNIEnv *pEnv, jclass clazz, byte *msg)
delegate void SetStaticIntFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jint val)
static readonly CallNonvirtualCharMethodADelegateType CallNonvirtualCharMethodADelegate
static readonly DeleteLocalRefDelegateType DeleteLocalRefDelegate
static readonly SetStaticFloatFieldDelegateType SetStaticFloatFieldDelegate
delegate jchar GetStaticCharFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
static readonly DeleteGlobalRefDelegateType DeleteGlobalRefDelegate
delegate jobject GetStaticObjectFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
static readonly CallBooleanMethodADelegateType CallBooleanMethodADelegate
delegate jboolean IsInstanceOfDelegateType(JNIEnv *pEnv, jobject obj, jclass clazz)
delegate void CallStaticVoidMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
delegate jshort GetStaticShortFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
static readonly CallStaticLongMethodADelegateType CallStaticLongMethodADelegate
static readonly GetObjectArrayElementDelegateType GetObjectArrayElementDelegate
delegate jobject CallStaticObjectMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
delegate void ReleasePrimitiveArrayCriticalDelegateType(JNIEnv *pEnv, jarray array, void *carray, jint mode)
delegate jlongArray NewLongArrayDelegateType(JNIEnv *pEnv, jsize len)
delegate jbyte CallNonvirtualByteMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
static readonly FatalErrorDelegateType FatalErrorDelegate
static readonly GetBooleanArrayRegionDelegateType GetBooleanArrayRegionDelegate
delegate jshort GetShortFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
static readonly GetStaticDoubleFieldDelegateType GetStaticDoubleFieldDelegate
static readonly JNINativeInterfaceHandle handle
delegate jobject AllocObjectDelegateType(JNIEnv *pEnv, jclass clazz)
static readonly GetDoubleFieldDelegateType GetDoubleFieldDelegate
static readonly ExceptionOccurredDelegateType ExceptionOccurredDelegate
delegate jboolean GetBooleanFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
delegate jdoubleArray NewDoubleArrayDelegateType(JNIEnv *pEnv, jsize len)
static readonly GetStringCharsDelegateType GetStringCharsDelegate
delegate jint GetJavaVMDelegateType(JNIEnv *pEnv, JavaVM **ppJavaVM)
static readonly SetStaticByteFieldDelegateType SetStaticByteFieldDelegate
delegate jmethodID GetMethodIDDelegateType(JNIEnv *pEnv, jclass clazz, byte *name, byte *sig)
delegate jint GetStaticIntFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
delegate void SetStaticLongFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jlong val)
static readonly GetJavaVMDelegateType GetJavaVMDelegate
delegate void SetIntFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jint val)
delegate jbyte GetByteFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
static readonly GetFloatArrayRegionDelegateType GetFloatArrayRegionDelegate
static readonly CallStaticCharMethodADelegateType CallStaticCharMethodADelegate
static readonly GetFloatFieldDelegateType GetFloatFieldDelegate
static readonly CallNonvirtualFloatMethodADelegateType CallNonvirtualFloatMethodADelegate
static readonly GetStaticCharFieldDelegateType GetStaticCharFieldDelegate
delegate void SetByteArrayRegionDelegateType(JNIEnv *pEnv, jbyteArray array, jsize start, jsize len, jbyte *buf)
delegate void CallNonvirtualVoidMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
static readonly GetObjectClassDelegateType GetObjectClassDelegate
delegate jfloat GetStaticFloatFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
static readonly FromReflectedMethodDelegateType FromReflectedMethodDelegate
delegate jbooleanArray NewBooleanArrayDelegateType(JNIEnv *pEnv, jsize len)
delegate jchar * GetStringCriticalDelegateType(JNIEnv *pEnv, jstring str, jboolean *isCopy)
static readonly SetByteFieldDelegateType SetByteFieldDelegate
delegate jfloat CallFloatMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
delegate jfieldID GetFieldIDDelegateType(JNIEnv *pEnv, jclass clazz, byte *name, byte *sig)
static readonly ReleaseLongArrayElementsDelegateType ReleaseLongArrayElementsDelegate
delegate void GetLongArrayRegionDelegateType(JNIEnv *pEnv, jlongArray array, jsize start, jsize len, jlong *buf)
delegate jint GetVersionDelegateType(JNIEnv *pEnv)
static readonly DefineClassDelegateType DefineClassDelegate
delegate void SetBooleanFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jboolean val)
static readonly FromReflectedFieldDelegateType FromReflectedFieldDelegate
static readonly SetShortArrayRegionDelegateType SetShortArrayRegionDelegate
static readonly CallVoidMethodADelegateType CallVoidMethodADelegate
static readonly CallStaticFloatMethodADelegateType CallStaticFloatMethodADelegate
static readonly GetShortArrayRegionDelegateType GetShortArrayRegionDelegate
delegate jint EnsureLocalCapacityDelegateType(JNIEnv *pEnv, jint capacity)
static readonly CallByteMethodADelegateType CallByteMethodADelegate
static readonly GetFieldIDDelegateType GetFieldIDDelegate
delegate jlong GetDirectBufferCapacityDelegateType(JNIEnv *pEnv, jobject buf)
delegate void GetCharArrayRegionDelegateType(JNIEnv *pEnv, jcharArray array, jsize start, jsize len, jchar *buf)
delegate void GetShortArrayRegionDelegateType(JNIEnv *pEnv, jshortArray array, jsize start, jsize len, jshort *buf)
delegate void SetShortArrayRegionDelegateType(JNIEnv *pEnv, jshortArray array, jsize start, jsize len, jshort *buf)
static readonly NewFloatArrayDelegateType NewFloatArrayDelegate
static readonly MonitorExitDelegateType MonitorExitDelegate
delegate jfieldID GetStaticFieldIDDelegateType(JNIEnv *pEnv, jclass clazz, byte *name, byte *sig)
static readonly SetStaticBooleanFieldDelegateType SetStaticBooleanFieldDelegate
static JNINativeInterface()
Initializes the static instance.
static readonly SetBooleanFieldDelegateType SetBooleanFieldDelegate
static readonly GetIntArrayElementsDelegateType GetIntArrayElementsDelegate
delegate jfloat CallStaticFloatMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
delegate jobject NewGlobalRefDelegateType(JNIEnv *pEnv, jobject obj)
static readonly GetCharArrayElementsDelegateType GetCharArrayElementsDelegate
delegate jclass FindClassDelegateType(JNIEnv *pEnv, byte *name)
static readonly ReleaseFloatArrayElementsDelegateType ReleaseFloatArrayElementsDelegate
static readonly GetStaticLongFieldDelegateType GetStaticLongFieldDelegate
static readonly GetStaticObjectFieldDelegateType GetStaticObjectFieldDelegate
static readonly SetDoubleFieldDelegateType SetDoubleFieldDelegate
static readonly SetStaticDoubleFieldDelegateType SetStaticDoubleFieldDelegate
delegate jdouble GetStaticDoubleFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
static readonly GetIntArrayRegionDelegateType GetIntArrayRegionDelegate
static readonly NewGlobalRefDelegateType NewGlobalRefDelegate
delegate void ReleaseFloatArrayElementsDelegateType(JNIEnv *pEnv, jfloatArray array, jfloat *elems, jint mode)
static readonly GetByteFieldDelegateType GetByteFieldDelegate
delegate jfloat GetFloatFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
delegate void SetStaticDoubleFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jdouble val)
delegate jint GetStringUTFLengthDelegateType(JNIEnv *pEnv, jstring str)
static readonly NewObjectADelegateType NewObjectADelegate
static readonly GetFloatArrayElementsDelegateType GetFloatArrayElementsDelegate
static readonly ToReflectedMethodDelegateType ToReflectedMethodDelegate
delegate void ReleaseBooleanArrayElementsDelegateType(JNIEnv *pEnv, jbooleanArray array, jboolean *elems, jint mode)
delegate jdouble CallDoubleMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
delegate jclass GetObjectClassDelegateType(JNIEnv *pEnv, jobject obj)
delegate void SetObjectArrayElementDelegateType(JNIEnv *pEnv, jarray array, jsize index, jobject val)
delegate jcharArray NewCharArrayDelegateType(JNIEnv *pEnv, jsize len)
static readonly GetStringUTFLengthDelegateType GetStringUTFLengthDelegate
static readonly RegisterNativesDelegateType RegisterNativesDelegate
delegate jbyte GetStaticByteFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
delegate void SetLongArrayRegionDelegateType(JNIEnv *pEnv, jlongArray array, jsize start, jsize len, jlong *buf)
static readonly SetStaticObjectFieldDelegateType SetStaticObjectFieldDelegate
delegate jclass DefineClassDelegateType(JNIEnv *pEnv, byte *name, jobject loader, jbyte *pbuf, jint length)
static readonly CallStaticByteMethodADelegateType CallStaticByteMethodADelegate
delegate jdouble CallStaticDoubleMethodADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
static readonly ReleaseByteArrayElementsDelegateType ReleaseByteArrayElementsDelegate
delegate jobjectArray NewObjectArrayDelegateType(JNIEnv *pEnv, jsize len, jclass clazz, jobject init)
delegate jdouble GetDoubleFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
static readonly MonitorEnterDelegateType MonitorEnterDelegate
delegate void FatalErrorDelegateType(JNIEnv *pEnv, byte *msg)
static readonly ReleaseBooleanArrayElementsDelegateType ReleaseBooleanArrayElementsDelegate
delegate jobject GetObjectFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
static readonly GetArrayLengthDelegateType GetArrayLengthDelegate
delegate jobject CallObjectMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
static readonly GetDirectBufferCapacityDelegateType GetDirectBufferCapacityDelegate
delegate void * GetDirectBufferAddressDelegateType(JNIEnv *pEnv, jobject buf)
delegate jchar CallCharMethodADelegateType(JNIEnv *pEnv, jobject obj, jmethodID methodID, JValue *args)
delegate void SetCharFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jchar val)
static readonly SetLongFieldDelegateType SetLongFieldDelegate
delegate void SetStaticObjectFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jobject val)
delegate jfloat * GetFloatArrayElementsDelegateType(JNIEnv *pEnv, jfloatArray array, jboolean *isCopy)
delegate jint RegisterNativesDelegateType(JNIEnv *pEnv, jclass clazz, JNIEnv.JNINativeMethod *methods, jint nMethods)
static readonly SetBooleanArrayRegionDelegateType SetBooleanArrayRegionDelegate
static readonly ExceptionDescribeDelegateType ExceptionDescribeDelegate
delegate void GetBooleanArrayRegionDelegateType(JNIEnv *pEnv, jbooleanArray array, jsize start, jsize len, jboolean *buf)
static readonly CallStaticIntMethodADelegateType CallStaticIntMethodADelegate
delegate jlong GetLongFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID)
delegate jlong CallNonvirtualLongMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
static readonly GetCharArrayRegionDelegateType GetCharArrayRegionDelegate
delegate void ReleaseStringCharsDelegateType(JNIEnv *pEnv, jstring str, jchar *chars)
static readonly GetStaticShortFieldDelegateType GetStaticShortFieldDelegate
static readonly SetShortFieldDelegateType SetShortFieldDelegate
static nint GetLibJvmFunctionHandle(string name, int argl=-1)
Gets the native handle for a function pointer in libjvm.
static readonly SetIntFieldDelegateType SetIntFieldDelegate
delegate jint GetStringLengthDelegateType(JNIEnv *pEnv, jstring str)
delegate void SetStaticCharFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID, jchar val)
static readonly ExceptionCheckDelegateType ExceptionCheckDelegate
delegate void SetIntArrayRegionDelegateType(JNIEnv *pEnv, jintArray array, jsize start, jsize len, jint *buf)
static readonly GetStaticMethodIDDelegateType GetStaticMethodIDDelegate
static readonly SetFloatFieldDelegateType SetFloatFieldDelegate
delegate void ExceptionDescribeDelegateType(JNIEnv *pEnv)
static readonly CallStaticVoidMethodADelegateType CallStaticVoidMethodADelegate
static readonly GetStringLengthDelegateType GetStringLengthDelegate
static readonly SetStaticShortFieldDelegateType SetStaticShortFieldDelegate
static readonly NewStringUTFDelegateType NewStringUTFDelegate
delegate void * GetPrimitiveArrayCriticalDelegateType(JNIEnv *pEnv, jarray array, jboolean *isCopy)
delegate jint CallNonvirtualIntMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
static readonly GetLongArrayRegionDelegateType GetLongArrayRegionDelegate
delegate void ReleaseStringUTFCharsDelegateType(JNIEnv *pEnv, jstring @string, byte *utf)
static readonly CallNonvirtualByteMethodADelegateType CallNonvirtualByteMethodADelegate
static readonly CallNonvirtualObjectMethodADelegateType CallNonvirtualObjectMethodADelegate
delegate void DeleteGlobalRefDelegateType(JNIEnv *pEnv, jobject obj)
static readonly CallNonvirtualBooleanMethodADelegateType CallNonvirtualBooleanMethodADelegate
static readonly CallNonvirtualIntMethodADelegateType CallNonvirtualIntMethodADelegate
delegate int GetMethodArgsDelegateType(JNIEnv *pEnv, jmethodID methodID, byte *sig)
delegate jshortArray NewShortArrayDelegateType(JNIEnv *pEnv, jsize len)
delegate jlong GetStaticLongFieldDelegateType(JNIEnv *pEnv, jclass clazz, jfieldID fieldID)
delegate jobject NewObjectADelegateType(JNIEnv *pEnv, jclass clazz, jmethodID methodID, JValue *args)
static readonly CallDoubleMethodADelegateType CallDoubleMethodADelegate
delegate void ReleaseLongArrayElementsDelegateType(JNIEnv *pEnv, jlongArray array, jlong *elems, jint mode)
static readonly GetSuperclassDelegateType GetSuperclassDelegate
static JNINativeInterface * Handle
Gets a pointer to the JNINativeInterface table.
static readonly GetStringUTFCharsDelegateType GetStringUTFCharsDelegate
delegate byte * GetStringUTFCharsDelegateType(JNIEnv *pEnv, jstring @string, jboolean *isCopy)
delegate jboolean CallNonvirtualBooleanMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
static readonly ReleaseStringCriticalDelegateType ReleaseStringCriticalDelegate
delegate jfieldID FromReflectedFieldDelegateType(JNIEnv *pEnv, jfieldID fieldID)
static readonly ThrowNewDelegateType ThrowNewDelegate
delegate jbyte * GetByteArrayElementsDelegateType(JNIEnv *pEnv, jbyteArray array, jboolean *isCopy)
static readonly GetDirectBufferAddressDelegateType GetDirectBufferAddressDelegate
static readonly ReleaseStringCharsDelegateType ReleaseStringCharsDelegate
delegate void GetIntArrayRegionDelegateType(JNIEnv *pEnv, jintArray array, jsize start, jsize len, jint *buf)
static readonly NewCharArrayDelegateType NewCharArrayDelegate
delegate void SetCharArrayRegionDelegateType(JNIEnv *pEnv, jcharArray array, jsize start, jsize len, jchar *buf)
static readonly GetObjectFieldDelegateType GetObjectFieldDelegate
static readonly SetObjectFieldDelegateType SetObjectFieldDelegate
delegate jchar * GetStringCharsDelegateType(JNIEnv *pEnv, jstring str, jboolean *isCopy)
static readonly CallNonvirtualVoidMethodADelegateType CallNonvirtualVoidMethodADelegate
delegate jobject GetObjectArrayElementDelegateType(JNIEnv *pEnv, jarray array, jsize index)
static readonly SetObjectArrayElementDelegateType SetObjectArrayElementDelegate
delegate jobject NewDirectByteBufferDelegateType(JNIEnv *pEnv, IntPtr address, jlong capacity)
static readonly GetShortFieldDelegateType GetShortFieldDelegate
delegate void ExceptionClearDelegateType(JNIEnv *pEnv)
delegate void GetFloatArrayRegionDelegateType(JNIEnv *pEnv, jfloatArray array, jsize start, jsize len, jfloat *buf)
static readonly SetStaticIntFieldDelegateType SetStaticIntFieldDelegate
static readonly GetLongArrayElementsDelegateType GetLongArrayElementsDelegate
delegate void SetByteFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jbyte val)
delegate void GetStringUTFRegionDelegateType(JNIEnv *pEnv, jstring str, jsize start, jsize len, byte *buf)
delegate jboolean * GetBooleanArrayElementsDelegateType(JNIEnv *pEnv, jbooleanArray array, jboolean *isCopy)
static readonly GetStringUTFRegionDelegateType GetStringUTFRegionDelegate
delegate jboolean IsAssignableFromDelegateType(JNIEnv *pEnv, jclass sub, jclass super)
static readonly NewWeakGlobalRefDelegateType NewWeakGlobalRefDelegate
static readonly GetStaticFloatFieldDelegateType GetStaticFloatFieldDelegate
delegate jchar CallNonvirtualCharMethodADelegateType(JNIEnv *pEnv, jobject obj, jclass clazz, jmethodID methodID, JValue *args)
static readonly CallNonvirtualDoubleMethodADelegateType CallNonvirtualDoubleMethodADelegate
static readonly GetPrimitiveArrayCriticalDelegateType GetPrimitiveArrayCriticalDelegate
delegate void SetDoubleFieldDelegateType(JNIEnv *pEnv, jobject obj, jfieldID fieldID, jdouble val)
static readonly SetLongArrayRegionDelegateType SetLongArrayRegionDelegate
delegate jobject NewStringUTFDelegateType(JNIEnv *pEnv, byte *bytes)
delegate void ReleaseStringCriticalDelegateType(JNIEnv *pEnv, jstring str, jchar *cstring)
static readonly CallStaticObjectMethodADelegateType CallStaticObjectMethodADelegate
static readonly CallStaticShortMethodADelegateType CallStaticShortMethodADelegate
static readonly NewShortArrayDelegateType NewShortArrayDelegate
static readonly IsAssignableFromDelegateType IsAssignableFromDelegate
static readonly PopLocalFrameDelegateType PopLocalFrameDelegate
delegate JObjectRefType GetObjectRefTypeDelegateType(JNIEnv *pEnv, jobject obj)
static readonly AllocObjectDelegateType AllocObjectDelegate
delegate jthrowable ExceptionOccurredDelegateType(JNIEnv *pEnv)
static readonly GetBooleanArrayElementsDelegateType GetBooleanArrayElementsDelegate
delegate jintArray NewIntArrayDelegateType(JNIEnv *pEnv, jsize len)
delegate jclass GetSuperclassDelegateType(JNIEnv *pEnv, jclass sub)
delegate jlong * GetLongArrayElementsDelegateType(JNIEnv *pEnv, jlongArray array, jboolean *isCopy)
delegate void GetDoubleArrayRegionDelegateType(JNIEnv *pEnv, jdoubleArray array, jsize start, jsize len, jdouble *buf)
static readonly GetByteArrayElementsDelegateType GetByteArrayElementsDelegate
static readonly CallFloatMethodADelegateType CallFloatMethodADelegate
static readonly SetByteArrayRegionDelegateType SetByteArrayRegionDelegate
Union type that represents 'jvalue'.
Definition jvalue.cs:21