summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew <forkk@forkk.net>2013-12-12 17:10:43 -0600
committerAndrew <forkk@forkk.net>2013-12-12 17:10:43 -0600
commita954fc1a3291d7f6e984b42ba71508d521d7d945 (patch)
tree702d55421cdf3fd1e0700e588ca2a1e81e09e55e
parent45aa858090062dd28fb4a29da9648eca87c5e539 (diff)
downloadMultiMC-a954fc1a3291d7f6e984b42ba71508d521d7d945.tar
MultiMC-a954fc1a3291d7f6e984b42ba71508d521d7d945.tar.gz
MultiMC-a954fc1a3291d7f6e984b42ba71508d521d7d945.tar.lz
MultiMC-a954fc1a3291d7f6e984b42ba71508d521d7d945.tar.xz
MultiMC-a954fc1a3291d7f6e984b42ba71508d521d7d945.zip
Fix updater removing all files.
Yeah, I don't know what I was thinking, but somehow it worked before.
-rw-r--r--logic/updater/DownloadUpdateTask.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/logic/updater/DownloadUpdateTask.cpp b/logic/updater/DownloadUpdateTask.cpp
index 3fe24482..250092ed 100644
--- a/logic/updater/DownloadUpdateTask.cpp
+++ b/logic/updater/DownloadUpdateTask.cpp
@@ -242,10 +242,18 @@ void DownloadUpdateTask::processFileLists()
for (VersionFileEntry newEntry : m_nVersionFileList)
{
if (newEntry.path == entry.path)
- continue;
+ {
+ QLOG_DEBUG() << "Not deleting" << entry.path << "because it is still present in the new version.";
+ goto SkipFile;
+ }
}
// If the loop reaches the end, we didn't find a match. Delete the file.
m_operationList.append(UpdateOperation::DeleteOp(entry.path));
+
+SkipFile:
+ // We goto here from the inner loop if we find an entry that has a corresponding entry in the new version's file list.
+ // This allows us to effectively continue the outer loop from the inner loop.
+ // In this case, goto is the more readable option.
}
// Create a network job for downloading files.