Qt: Fix leak if loading a save file fails

This commit is contained in:
Vicki Pfau 2023-07-16 22:02:18 -07:00
parent afb614ad03
commit 1dc94c999a
1 changed files with 12 additions and 4 deletions

View File

@ -775,10 +775,14 @@ void CoreController::loadSave(const QString& path, bool temporary) {
return;
}
bool ok;
if (temporary) {
m_threadContext.core->loadTemporarySave(m_threadContext.core, vf);
ok = m_threadContext.core->loadTemporarySave(m_threadContext.core, vf);
} else {
m_threadContext.core->loadSave(m_threadContext.core, vf);
ok = m_threadContext.core->loadSave(m_threadContext.core, vf);
}
if (!ok) {
vf->close(vf);
}
});
if (hasStarted()) {
@ -788,10 +792,14 @@ void CoreController::loadSave(const QString& path, bool temporary) {
void CoreController::loadSave(VFile* vf, bool temporary) {
m_resetActions.append([this, vf, temporary]() {
bool ok;
if (temporary) {
m_threadContext.core->loadTemporarySave(m_threadContext.core, vf);
ok = m_threadContext.core->loadTemporarySave(m_threadContext.core, vf);
} else {
m_threadContext.core->loadSave(m_threadContext.core, vf);
ok = m_threadContext.core->loadSave(m_threadContext.core, vf);
}
if (!ok) {
vf->close(vf);
}
});
if (hasStarted()) {