mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2026-09-14 15:25:00 -04:00
Merge pull request #332 from AngelAuraMC/feat/export-javavm-pointer
qol for modders
This commit is contained in:
3 files changed
+32
No files matched your search
@@ -1943,4 +1943,6 @@ public final class Tools {
|
||||
*/
|
||||
public static native void initializeControllerSubsystems();
|
||||
}
|
||||
public static native String jObjectToString(Object object);
|
||||
public static native long getJavaVMPointer();
|
||||
}
|
||||
@@ -267,6 +267,9 @@ public class JREUtils {
|
||||
envMap.put("POJAV_LOAD_TURNIP", "1");
|
||||
}
|
||||
|
||||
envMap.put("DALVIK_APPLICATION", Tools.jObjectToString(activity.getApplication()));
|
||||
envMap.put("DALVIK_JAVAVM", String.valueOf(Tools.getJavaVMPointer()));
|
||||
|
||||
readCustomEnv(envMap); // Must be last so it overrides anything the user sets for obvious reasons.
|
||||
|
||||
for (Map.Entry<String, String> env : envMap.entrySet()) {
|
||||
|
||||
@@ -200,3 +200,30 @@ JNIEXPORT jint JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_executeForkedBina
|
||||
}
|
||||
*/
|
||||
|
||||
// WARNING: This does not release the global ref, this can be a memory leak
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_net_kdt_pojavlaunch_Tools_jObjectToString(JNIEnv *env, jclass clazz, jobject object) {
|
||||
if (object == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject globalRef = (*env)->NewGlobalRef(env, object);
|
||||
if (globalRef == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char buf[32];
|
||||
snprintf(buf, sizeof(buf), "%p", globalRef);
|
||||
|
||||
return (*env)->NewStringUTF(env, buf);
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_net_kdt_pojavlaunch_Tools_getJavaVMPointer(JNIEnv *env, jclass clazz) {
|
||||
JavaVM *vm;
|
||||
if ((*env)->GetJavaVM(env, &vm) != JNI_OK) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return (jlong)(uintptr_t)vm;
|
||||
}
|
||||
Reference in new issue
Block a user