2
0
Эх сурвалжийг харах

Merge pull request #99694 from dsnopek/android-os-create-instance-return-value

Android: `OS.create_instance()` should return `-1` on failure
Thaddeus Crews 9 сар өмнө
parent
commit
150c69c0f2

+ 1 - 1
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<String>): Int {
-		return primaryHost?.onNewGodotInstanceRequested(args) ?: 0
+		return primaryHost?.onNewGodotInstanceRequested(args) ?: -1
 	}
 
 	@Keep

+ 1 - 1
platform/android/java/lib/src/org/godotengine/godot/GodotFragment.java

@@ -474,7 +474,7 @@ public class GodotFragment extends Fragment implements IDownloaderClient, GodotH
 		if (parentHost != null) {
 			return parentHost.onNewGodotInstanceRequested(args);
 		}
-		return 0;
+		return -1;
 	}
 
 	@Override

+ 1 - 1
platform/android/java/lib/src/org/godotengine/godot/GodotHost.java

@@ -92,7 +92,7 @@ public interface GodotHost {
 	 * @return the id of the new instance. See {@code onGodotForceQuit}
 	 */
 	default int onNewGodotInstanceRequested(String[] args) {
-		return 0;
+		return -1;
 	}
 
 	/**

+ 3 - 0
platform/android/os_android.cpp

@@ -863,6 +863,9 @@ Error OS_Android::create_process(const String &p_path, const List<String> &p_arg
 
 Error OS_Android::create_instance(const List<String> &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;
 	}