diff options
author | Fredia Huya-Kouadio <fhuyakou@gmail.com> | 2020-05-25 11:48:49 -0700 |
---|---|---|
committer | Fredia Huya-Kouadio <fhuyakou@gmail.com> | 2020-05-25 11:50:36 -0700 |
commit | e7e736c03be30db520a061a342eba0e81e5d131d (patch) | |
tree | 2314f027264e937f3a1fd6e0bc7bf533625b61b6 | |
parent | 2709ddb163799d33b632eeeea0cdf3cd75ad16b6 (diff) |
Fix parameters passing when emitting signal
The issue was caused because we were using variables local to the `for` loop block.
-rw-r--r-- | platform/android/plugin/godot_plugin_jni.cpp | 5 |
1 files 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); }; |