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