Browse Source

Fix parameters passing when emitting signal

The issue was caused because we were using variables local to the `for` loop block.
Fredia Huya-Kouadio 5 years ago
parent
commit
e7e736c03b
1 changed files with 3 additions and 2 deletions
  1. 3 2
      platform/android/plugin/godot_plugin_jni.cpp

+ 3 - 2
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);
 	};