From cf296df8e26663034fc6c53b10e27e6b162e759b Mon Sep 17 00:00:00 2001 From: ashwani yadav <22ashwaniyadav@gmail.com> Date: Sun, 9 Aug 2026 04:49:14 +0530 Subject: [PATCH] VRBrowser: Delete jstring local refs in string getters GetStorageAbsolutePath and GetActiveEnvironment released the UTF chars but never deleted the jstring local reference, unlike OnAppLink and AppendAppNotesToCrashLog in the same file. The render thread stays attached, so leaked locals are never reclaimed. Fixes #2041 --- app/src/main/cpp/VRBrowser.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/cpp/VRBrowser.cpp b/app/src/main/cpp/VRBrowser.cpp index 3051458f60..4d1d8dae69 100644 --- a/app/src/main/cpp/VRBrowser.cpp +++ b/app/src/main/cpp/VRBrowser.cpp @@ -362,6 +362,7 @@ VRBrowser::GetStorageAbsolutePath(const std::string& aRelativePath) { const char *cstr = sEnv->GetStringUTFChars(jStr, nullptr); std::string str = std::string(cstr); sEnv->ReleaseStringUTFChars(jStr, cstr); + sEnv->DeleteLocalRef(jStr); if (aRelativePath.empty()) { return str; @@ -405,6 +406,7 @@ VRBrowser::GetActiveEnvironment() { const char *cstr = sEnv->GetStringUTFChars(jStr, nullptr); std::string str = std::string(cstr); sEnv->ReleaseStringUTFChars(jStr, cstr); + sEnv->DeleteLocalRef(jStr); return str; }