1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Fix 64-bit integers being truncated to 32-bit in JNI

This commit is contained in:
Serhii Snitsaruk
2025-10-30 11:32:17 +01:00
parent 07f4c06601
commit b0cb297cde
3 changed files with 17 additions and 5 deletions

View File

@@ -116,16 +116,15 @@ jvalue _variant_to_jvalue(JNIEnv *env, Variant::Type p_type, const Variant *p_ar
} break;
case Variant::INT: {
if (force_jobject) {
jclass bclass = jni_find_class(env, "java/lang/Integer");
jmethodID ctor = env->GetMethodID(bclass, "<init>", "(I)V");
jclass bclass = jni_find_class(env, "java/lang/Long");
jmethodID ctor = env->GetMethodID(bclass, "<init>", "(J)V");
jvalue val;
val.i = (int)(*p_arg);
val.j = (jlong)(*p_arg);
jobject obj = env->NewObjectA(bclass, ctor, &val);
value.l = obj;
env->DeleteLocalRef(bclass);
} else {
value.i = *p_arg;
value.j = (jlong)(*p_arg);
}
} break;
case Variant::FLOAT: {