mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	android: jni: Ensure system is only initialized once.
- Fixes likelihood that fastmem allocation succeeds.
This commit is contained in:
		@@ -185,8 +185,7 @@ public final class NativeLibrary {
 | 
			
		||||
 | 
			
		||||
    public static native boolean ReloadKeys();
 | 
			
		||||
 | 
			
		||||
    // Create the config.ini file.
 | 
			
		||||
    public static native void CreateConfigFile();
 | 
			
		||||
    public static native void InitializeEmulation();
 | 
			
		||||
 | 
			
		||||
    public static native int DefaultCPUCore();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ public final class DirectoryInitialization {
 | 
			
		||||
 | 
			
		||||
        if (directoryState != DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED) {
 | 
			
		||||
            initializeInternalStorage(context);
 | 
			
		||||
            NativeLibrary.CreateConfigFile();
 | 
			
		||||
            NativeLibrary.InitializeEmulation();
 | 
			
		||||
            directoryState = DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,6 @@ namespace {
 | 
			
		||||
class EmulationSession final {
 | 
			
		||||
public:
 | 
			
		||||
    EmulationSession() {
 | 
			
		||||
        m_system.Initialize();
 | 
			
		||||
        m_vfs = std::make_shared<FileSys::RealVfsFilesystem>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -126,7 +125,6 @@ public:
 | 
			
		||||
 | 
			
		||||
        // Initialize system.
 | 
			
		||||
        m_system.SetShuttingDown(false);
 | 
			
		||||
        m_system.Initialize();
 | 
			
		||||
        m_system.ApplySettings();
 | 
			
		||||
        m_system.HIDCore().ReloadInputDevices();
 | 
			
		||||
        m_system.SetContentProvider(std::make_unique<FileSys::ContentProviderUnion>());
 | 
			
		||||
@@ -498,9 +496,12 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_GetGitRevision([[maybe_unused]] JN
 | 
			
		||||
    return {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Java_org_yuzu_yuzu_1emu_NativeLibrary_CreateConfigFile
 | 
			
		||||
void Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeEmulation
 | 
			
		||||
    [[maybe_unused]] (JNIEnv* env, [[maybe_unused]] jclass clazz) {
 | 
			
		||||
    // Create the default config.ini.
 | 
			
		||||
    Config{};
 | 
			
		||||
    // Initialize the emulated system.
 | 
			
		||||
    EmulationSession::GetInstance().System().Initialize();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
jint Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore([[maybe_unused]] JNIEnv* env,
 | 
			
		||||
 
 | 
			
		||||
@@ -86,8 +86,8 @@ JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetSysDirectory(JNI
 | 
			
		||||
                                                                             jclass clazz,
 | 
			
		||||
                                                                             jstring path);
 | 
			
		||||
 | 
			
		||||
JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_CreateConfigFile(JNIEnv* env,
 | 
			
		||||
                                                                              jclass clazz);
 | 
			
		||||
JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeEmulation(JNIEnv* env,
 | 
			
		||||
                                                                                 jclass clazz);
 | 
			
		||||
 | 
			
		||||
JNIEXPORT jint JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env,
 | 
			
		||||
                                                                            jclass clazz);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user