mirror of https://github.com/mgba-emu/mgba.git
Qt: Fix leak if loading a save file fails
This commit is contained in:
parent
afb614ad03
commit
1dc94c999a
|
@ -775,10 +775,14 @@ void CoreController::loadSave(const QString& path, bool temporary) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ok;
|
||||||
if (temporary) {
|
if (temporary) {
|
||||||
m_threadContext.core->loadTemporarySave(m_threadContext.core, vf);
|
ok = m_threadContext.core->loadTemporarySave(m_threadContext.core, vf);
|
||||||
} else {
|
} 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()) {
|
if (hasStarted()) {
|
||||||
|
@ -788,10 +792,14 @@ void CoreController::loadSave(const QString& path, bool temporary) {
|
||||||
|
|
||||||
void CoreController::loadSave(VFile* vf, bool temporary) {
|
void CoreController::loadSave(VFile* vf, bool temporary) {
|
||||||
m_resetActions.append([this, vf, temporary]() {
|
m_resetActions.append([this, vf, temporary]() {
|
||||||
|
bool ok;
|
||||||
if (temporary) {
|
if (temporary) {
|
||||||
m_threadContext.core->loadTemporarySave(m_threadContext.core, vf);
|
ok = m_threadContext.core->loadTemporarySave(m_threadContext.core, vf);
|
||||||
} else {
|
} 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()) {
|
if (hasStarted()) {
|
||||||
|
|
Loading…
Reference in New Issue