summaryrefslogtreecommitdiffstats
path: root/platform/android/net_socket_android.cpp
diff options
context:
space:
mode:
authorFredia Huya-Kouadio <fhuya@meta.com>2024-04-15 10:30:18 -0700
committerFredia Huya-Kouadio <fhuya@meta.com>2024-04-15 10:30:18 -0700
commitf291a4ed3a64dd95bf8136f352e5d0554ada4a7c (patch)
tree5dd8a611fea937d1a372798a2e541cf2725f03cd /platform/android/net_socket_android.cpp
parentb8fa48be040890f344a5178cf0fb9ea69c24f88e (diff)
downloadredot-engine-f291a4ed3a64dd95bf8136f352e5d0554ada4a7c.tar.gz
Fix leakage of JNI object references
Fixes https://github.com/godotengine/godot/issues/87548
Diffstat (limited to 'platform/android/net_socket_android.cpp')
-rw-r--r--platform/android/net_socket_android.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/platform/android/net_socket_android.cpp b/platform/android/net_socket_android.cpp
index a2befdc9be..8f0ee51fac 100644
--- a/platform/android/net_socket_android.cpp
+++ b/platform/android/net_socket_android.cpp
@@ -49,6 +49,14 @@ void NetSocketAndroid::setup(jobject p_net_utils) {
_multicast_lock_release = env->GetMethodID(cls, "multicastLockRelease", "()V");
}
+void NetSocketAndroid::terminate() {
+ JNIEnv *env = get_jni_env();
+ ERR_FAIL_NULL(env);
+
+ env->DeleteGlobalRef(cls);
+ env->DeleteGlobalRef(net_utils);
+}
+
void NetSocketAndroid::multicast_lock_acquire() {
if (_multicast_lock_acquire) {
JNIEnv *env = get_jni_env();