mirror of
https://github.com/Dark98/threeSD.git
synced 2026-07-05 08:39:04 +00:00
Fix.
This commit is contained in:
+14
-15
@@ -698,15 +698,19 @@ bool SDMCImporter::BuildCIA(CIABuildType type, const ContentSpecifier& specifier
|
|||||||
std::lock_guard lock{cia_builder_mutex};
|
std::lock_guard lock{cia_builder_mutex};
|
||||||
cia_builder = std::make_unique<CIABuilder>();
|
cia_builder = std::make_unique<CIABuilder>();
|
||||||
}
|
}
|
||||||
SCOPE_EXIT({
|
|
||||||
std::lock_guard lock{cia_builder_mutex};
|
|
||||||
cia_builder.reset(); // To release file handles, etc
|
|
||||||
});
|
|
||||||
|
|
||||||
const bool ret = cia_builder->Init(type, destination, tmd, config,
|
bool ret = cia_builder->Init(type, destination, tmd, config,
|
||||||
FileUtil::GetDirectoryTreeSize(physical_path), callback);
|
FileUtil::GetDirectoryTreeSize(physical_path), callback);
|
||||||
|
SCOPE_EXIT({
|
||||||
|
{
|
||||||
|
std::lock_guard lock{cia_builder_mutex};
|
||||||
|
cia_builder.reset(); // To release file handles, etc
|
||||||
|
}
|
||||||
|
if (!ret) { // Remove borked file
|
||||||
|
FileUtil::Delete(destination);
|
||||||
|
}
|
||||||
|
});
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
FileUtil::Delete(destination);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -750,14 +754,9 @@ bool SDMCImporter::BuildCIA(CIABuildType type, const ContentSpecifier& specifier
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (FileUtil::ForeachDirectoryEntry(nullptr, physical_path, DirectoryEntryCallback) &&
|
ret = FileUtil::ForeachDirectoryEntry(nullptr, physical_path, DirectoryEntryCallback) &&
|
||||||
cia_builder->Finalize()) {
|
cia_builder->Finalize();
|
||||||
|
return ret;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
FileUtil::Delete(destination);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDMCImporter::AbortBuildCIA() {
|
void SDMCImporter::AbortBuildCIA() {
|
||||||
|
|||||||
Reference in New Issue
Block a user