From 15b41d84219af76cb2a49fd6627dca3b3f13d982 Mon Sep 17 00:00:00 2001 From: amwatson Date: Fri, 10 May 2024 16:27:06 -0500 Subject: [PATCH] Delete reference deletion lines and add forced exit to try to get around bug some users report on app switch --- src/android/app/src/main/jni/vr/layers/UILayer.cpp | 2 +- src/android/app/src/main/jni/vr/vr_main.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/android/app/src/main/jni/vr/layers/UILayer.cpp b/src/android/app/src/main/jni/vr/layers/UILayer.cpp index d8ce66620..955f4c4d4 100644 --- a/src/android/app/src/main/jni/vr/layers/UILayer.cpp +++ b/src/android/app/src/main/jni/vr/layers/UILayer.cpp @@ -249,7 +249,7 @@ void UILayer::Shutdown() { mVrUILayerClass = nullptr; // These steps are not strictly necessary for app shutdown, as references are cleaned up when // the JVM is destroyed, but memory-saving if this class is destroyed/re-initialized at runtime. - mEnv->DeleteLocalRef(mVrUILayerObject); + // mEnv->DeleteLocalRef(mVrUILayerObject); mVrUILayerObject = nullptr; } diff --git a/src/android/app/src/main/jni/vr/vr_main.cpp b/src/android/app/src/main/jni/vr/vr_main.cpp index 5da443381..ab52e7f35 100644 --- a/src/android/app/src/main/jni/vr/vr_main.cpp +++ b/src/android/app/src/main/jni/vr/vr_main.cpp @@ -1264,7 +1264,9 @@ Java_org_citra_citra_1emu_vr_VrActivity_nativeOnCreate(JNIEnv* env, jobject thiz } extern "C" JNIEXPORT void JNICALL Java_org_citra_citra_1emu_vr_VrActivity_nativeOnDestroy(JNIEnv* env, jobject thiz, jlong handle) { - + // Ensures a clean exit. This is currently not needed for proper cleanup, but may avoid the + // crash on program switch some have reported. + exit(0); ALOGI("nativeOnDestroy {}", static_cast(handle)); if (handle != 0) { delete VRAppHandle(handle).p; } VR::JNI::CleanupJNI(env);