Use long instead of int for object id in Android java wrapper

Using int for 64-bit values might cause issues with objects not found
in ObjectDB when the id is truncated.
This commit is contained in:
PouleyKetchoupp 2020-05-24 13:26:18 +02:00
parent 07ada02cb4
commit 39f59786fa
4 changed files with 11 additions and 11 deletions

View File

@ -189,7 +189,7 @@ public class GodotLib {
* @param p_method Name of the method to invoke * @param p_method Name of the method to invoke
* @param p_params Parameters to use for method invocation * @param p_params Parameters to use for method invocation
*/ */
public static native void callobject(int p_id, String p_method, Object[] p_params); public static native void callobject(long p_id, String p_method, Object[] p_params);
/** /**
* Invoke method |p_method| on the Godot object specified by |p_id| during idle time. * Invoke method |p_method| on the Godot object specified by |p_id| during idle time.
@ -197,7 +197,7 @@ public class GodotLib {
* @param p_method Name of the method to invoke * @param p_method Name of the method to invoke
* @param p_params Parameters to use for method invocation * @param p_params Parameters to use for method invocation
*/ */
public static native void calldeferred(int p_id, String p_method, Object[] p_params); public static native void calldeferred(long p_id, String p_method, Object[] p_params);
/** /**
* Forward the results from a permission request. * Forward the results from a permission request.

View File

@ -48,7 +48,7 @@ import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
public class GodotPayment extends GodotPlugin { public class GodotPayment extends GodotPlugin {
private Integer purchaseCallbackId = 0; private Long purchaseCallbackId = 0L;
private String accessToken; private String accessToken;
private String purchaseValidationUrlPrefix; private String purchaseValidationUrlPrefix;
private String transactionId; private String transactionId;
@ -129,11 +129,11 @@ public class GodotPayment extends GodotPlugin {
GodotLib.calldeferred(purchaseCallbackId, "purchase_owned", new Object[] { sku }); GodotLib.calldeferred(purchaseCallbackId, "purchase_owned", new Object[] { sku });
} }
public int getPurchaseCallbackId() { public long getPurchaseCallbackId() {
return purchaseCallbackId; return purchaseCallbackId;
} }
public void setPurchaseCallbackId(int purchaseCallbackId) { public void setPurchaseCallbackId(long purchaseCallbackId) {
this.purchaseCallbackId = purchaseCallbackId; this.purchaseCallbackId = purchaseCallbackId;
} }

View File

@ -375,8 +375,8 @@ JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getGlobal(JNIEnv *
return env->NewStringUTF(ProjectSettings::get_singleton()->get(js).operator String().utf8().get_data()); return env->NewStringUTF(ProjectSettings::get_singleton()->get(js).operator String().utf8().get_data());
} }
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_callobject(JNIEnv *env, jclass clazz, jint ID, jstring method, jobjectArray params) { JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_callobject(JNIEnv *env, jclass clazz, jlong ID, jstring method, jobjectArray params) {
Object *obj = ObjectDB::get_instance(ObjectID((uint64_t)ID)); Object *obj = ObjectDB::get_instance(ObjectID(ID));
ERR_FAIL_COND(!obj); ERR_FAIL_COND(!obj);
int res = env->PushLocalFrame(16); int res = env->PushLocalFrame(16);
@ -405,8 +405,8 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_callobject(JNIEnv *en
env->PopLocalFrame(nullptr); env->PopLocalFrame(nullptr);
} }
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_calldeferred(JNIEnv *env, jclass clazz, jint ID, jstring method, jobjectArray params) { JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_calldeferred(JNIEnv *env, jclass clazz, jlong ID, jstring method, jobjectArray params) {
Object *obj = ObjectDB::get_instance(ObjectID((uint64_t)ID)); Object *obj = ObjectDB::get_instance(ObjectID(ID));
ERR_FAIL_COND(!obj); ERR_FAIL_COND(!obj);
int res = env->PushLocalFrame(16); int res = env->PushLocalFrame(16);

View File

@ -61,8 +61,8 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_gyroscope(JNIEnv *env
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusin(JNIEnv *env, jclass clazz); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusin(JNIEnv *env, jclass clazz);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusout(JNIEnv *env, jclass clazz); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusout(JNIEnv *env, jclass clazz);
JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getGlobal(JNIEnv *env, jclass clazz, jstring path); JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getGlobal(JNIEnv *env, jclass clazz, jstring path);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_callobject(JNIEnv *env, jclass clazz, jint ID, jstring method, jobjectArray params); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_callobject(JNIEnv *env, jclass clazz, jlong ID, jstring method, jobjectArray params);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_calldeferred(JNIEnv *env, jclass clazz, jint ID, jstring method, jobjectArray params); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_calldeferred(JNIEnv *env, jclass clazz, jlong ID, jstring method, jobjectArray params);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setVirtualKeyboardHeight(JNIEnv *env, jclass clazz, jint p_height); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setVirtualKeyboardHeight(JNIEnv *env, jclass clazz, jint p_height);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_requestPermissionResult(JNIEnv *env, jclass clazz, jstring p_permission, jboolean p_result); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_requestPermissionResult(JNIEnv *env, jclass clazz, jstring p_permission, jboolean p_result);
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNIEnv *env, jclass clazz); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNIEnv *env, jclass clazz);