mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Fix 64-bit integers being truncated to 32-bit in JNI
This commit is contained in:
parent
07f4c06601
commit
b0cb297cde
3 changed files with 17 additions and 5 deletions
|
|
@ -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: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue