You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
Fix parameters passing when emitting signal
The issue was caused because we were using variables local to the `for` loop block.
This commit is contained in:
@@ -114,12 +114,13 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_plugin_GodotPlugin_nativeEmitS
|
|||||||
String signal_name = jstring_to_string(j_signal_name, env);
|
String signal_name = jstring_to_string(j_signal_name, env);
|
||||||
|
|
||||||
int count = env->GetArrayLength(j_signal_params);
|
int count = env->GetArrayLength(j_signal_params);
|
||||||
|
Variant variant_params[count];
|
||||||
const Variant *args[count];
|
const Variant *args[count];
|
||||||
|
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
jobject j_param = env->GetObjectArrayElement(j_signal_params, i);
|
jobject j_param = env->GetObjectArrayElement(j_signal_params, i);
|
||||||
Variant variant = _jobject_to_variant(env, j_param);
|
variant_params[i] = _jobject_to_variant(env, j_param);
|
||||||
args[i] = &variant;
|
args[i] = &variant_params[i];
|
||||||
env->DeleteLocalRef(j_param);
|
env->DeleteLocalRef(j_param);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user