summaryrefslogtreecommitdiff
path: root/Source/Android/jni/GameList/GameFileCache.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2022-12-25 16:30:51 +0100
committerJosJuice <josjuice@gmail.com>2022-12-27 22:03:44 +0100
commit0b9351c194c8451576b183971e363ceaf658a448 (patch)
treeb0c70f7c62bf6810e0efd790c38c7ce6a7de06ab /Source/Android/jni/GameList/GameFileCache.cpp
parent54a6c4a90dc02ccb2036f3309ded70f40403242a (diff)
Android: Make more meticulous use of DeleteLocalRef
If we're in a function that isn't just going to immediately return to Java, leaking local references can lead to problems eventually.
Diffstat (limited to 'Source/Android/jni/GameList/GameFileCache.cpp')
-rw-r--r--Source/Android/jni/GameList/GameFileCache.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/Source/Android/jni/GameList/GameFileCache.cpp b/Source/Android/jni/GameList/GameFileCache.cpp
index 061056cc90..280de59bf9 100644
--- a/Source/Android/jni/GameList/GameFileCache.cpp
+++ b/Source/Android/jni/GameList/GameFileCache.cpp
@@ -52,7 +52,9 @@ Java_org_dolphinemu_dolphinemu_model_GameFileCache_getAllGames(JNIEnv* env, jobj
env->NewObjectArray(static_cast<jsize>(ptr->GetSize()), IDCache::GetGameFileClass(), nullptr);
jsize i = 0;
GetPointer(env, obj)->ForEach([env, array, &i](const auto& game_file) {
- env->SetObjectArrayElement(array, i++, GameFileToJava(env, game_file));
+ jobject j_game_file = GameFileToJava(env, game_file);
+ env->SetObjectArrayElement(array, i++, j_game_file);
+ env->DeleteLocalRef(j_game_file);
});
return array;
}