From e7e736c03be30db520a061a342eba0e81e5d131d Mon Sep 17 00:00:00 2001 From: Fredia Huya-Kouadio Date: Mon, 25 May 2020 11:48:49 -0700 Subject: Fix parameters passing when emitting signal The issue was caused because we were using variables local to the `for` loop block. --- platform/android/plugin/godot_plugin_jni.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/android/plugin/godot_plugin_jni.cpp b/platform/android/plugin/godot_plugin_jni.cpp index 557743fa73..053a4c078e 100644 --- a/platform/android/plugin/godot_plugin_jni.cpp +++ b/platform/android/plugin/godot_plugin_jni.cpp @@ -114,12 +114,13 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitS String signal_name = jstring_to_string(j_signal_name, env); int count = env->GetArrayLength(j_signal_params); + Variant variant_params[count]; const Variant *args[count]; for (int i = 0; i < count; i++) { jobject j_param = env->GetObjectArrayElement(j_signal_params, i); - Variant variant = _jobject_to_variant(env, j_param); - args[i] = &variant; + variant_params[i] = _jobject_to_variant(env, j_param); + args[i] = &variant_params[i]; env->DeleteLocalRef(j_param); }; -- cgit v1.2.3