refactor(instance creation): use RAII lock to suspend instance settings saving

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
Octol1ttle 2026-01-08 04:04:29 +05:00
parent 3937819305
commit c24fd2f570
No known key found for this signature in database
GPG key ID: B77C34313AEE1FFF
4 changed files with 17 additions and 25 deletions

View file

@ -133,10 +133,9 @@ void PackInstallTask::install()
}
QString instanceConfigPath = FS::PathCombine(m_stagingPath, "instance.cfg");
auto instanceSettings = std::make_unique<INISettingsObject>(instanceConfigPath);
instanceSettings->suspendSave();
MinecraftInstance instance(m_globalSettings, std::make_unique<INISettingsObject>(instanceConfigPath), m_stagingPath);
SettingsObject::Lock lock(instance.settings());
MinecraftInstance instance(m_globalSettings, std::move(instanceSettings), m_stagingPath);
auto components = instance.getPackProfile();
components->buildingFromScratch();
components->setComponentVersion("net.minecraft", m_pack.mcVersion, true);
@ -204,7 +203,6 @@ void PackInstallTask::install()
m_instIcon = "ftb_logo";
}
instance.setIconKey(m_instIcon);
instance.settings()->resumeSave();
emitSucceeded();
}