Skip to content

Commit 6c67709

Browse files
committed
Fixes issue where ArchiveManager never unloads Archives.
1 parent 023e2cc commit 6c67709

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/resource/archive/ArchiveManager.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ void ArchiveManager::Init(const std::vector<std::string>& archivePaths,
3333

3434
ArchiveManager::~ArchiveManager() {
3535
SPDLOG_TRACE("destruct archive manager");
36+
SetArchives({});
3637
}
3738

3839
bool ArchiveManager::IsArchiveLoaded() {
@@ -123,11 +124,17 @@ std::vector<std::shared_ptr<Archive>> ArchiveManager::GetArchives() {
123124
}
124125

125126
void ArchiveManager::SetArchives(const std::vector<std::shared_ptr<Archive>>& archives) {
127+
for (const auto& archive : mArchives) {
128+
archive->Unload();
129+
}
126130
mArchives.clear();
127131
mGameVersions.clear();
128132
mHashes.clear();
129133
mFileToArchive.clear();
130134
for (const auto& archive : archives) {
135+
if (!archive->IsLoaded()) {
136+
archive->Load();
137+
}
131138
AddArchive(archive);
132139
}
133140
}

0 commit comments

Comments
 (0)