From 38e0532ffa43a8302a32d683ec7610b21ec0f4a1 Mon Sep 17 00:00:00 2001 From: David Snopek Date: Mon, 25 Nov 2024 15:58:06 -0600 Subject: [PATCH] Android: `OS.create_instance()` should return `-1` on failure --- platform/android/java/lib/src/org/godotengine/godot/Godot.kt | 2 +- .../java/lib/src/org/godotengine/godot/GodotFragment.java | 2 +- .../android/java/lib/src/org/godotengine/godot/GodotHost.java | 2 +- platform/android/os_android.cpp | 3 +++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/platform/android/java/lib/src/org/godotengine/godot/Godot.kt b/platform/android/java/lib/src/org/godotengine/godot/Godot.kt index 3ad8e6bc9ee2..f82b44c544de 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/Godot.kt +++ b/platform/android/java/lib/src/org/godotengine/godot/Godot.kt @@ -1123,7 +1123,7 @@ class Godot(private val context: Context) { @Keep private fun createNewGodotInstance(args: Array): Int { - return primaryHost?.onNewGodotInstanceRequested(args) ?: 0 + return primaryHost?.onNewGodotInstanceRequested(args) ?: -1 } @Keep diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotFragment.java b/platform/android/java/lib/src/org/godotengine/godot/GodotFragment.java index d60595c0bb73..7cfe3ef3e813 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/GodotFragment.java +++ b/platform/android/java/lib/src/org/godotengine/godot/GodotFragment.java @@ -474,7 +474,7 @@ public int onNewGodotInstanceRequested(String[] args) { if (parentHost != null) { return parentHost.onNewGodotInstanceRequested(args); } - return 0; + return -1; } @Override diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotHost.java b/platform/android/java/lib/src/org/godotengine/godot/GodotHost.java index 344b73f79946..60d1f01b2109 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/GodotHost.java +++ b/platform/android/java/lib/src/org/godotengine/godot/GodotHost.java @@ -92,7 +92,7 @@ default void onGodotRestartRequested(Godot instance) {} * @return the id of the new instance. See {@code onGodotForceQuit} */ default int onNewGodotInstanceRequested(String[] args) { - return 0; + return -1; } /** diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 7b0d3a29e90f..06f5df487127 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -863,6 +863,9 @@ Error OS_Android::create_process(const String &p_path, const List &p_arg Error OS_Android::create_instance(const List &p_arguments, ProcessID *r_child_id) { int instance_id = godot_java->create_new_godot_instance(p_arguments); + if (instance_id == -1) { + return FAILED; + } if (r_child_id) { *r_child_id = instance_id; }