aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-07-23 23:16:28 -0300
committerflow <flowlnlnln@gmail.com>2022-07-24 17:46:53 -0300
commitb1763353ea0fd2d1924e3560f0a674cb6260721b (patch)
treed56cd1012709c005334db40e83abcd6a3ba263cb /launcher/modplatform
parentf95bcf45ad0e537a124f5aa0c7b9e97a78811289 (diff)
downloadPrismLauncher-b1763353ea0fd2d1924e3560f0a674cb6260721b.tar.gz
PrismLauncher-b1763353ea0fd2d1924e3560f0a674cb6260721b.tar.bz2
PrismLauncher-b1763353ea0fd2d1924e3560f0a674cb6260721b.zip
feat: do incremental calculation of CF's hash
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/modplatform')
-rw-r--r--launcher/modplatform/EnsureMetadataTask.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/launcher/modplatform/EnsureMetadataTask.cpp b/launcher/modplatform/EnsureMetadataTask.cpp
index a5c9cbca..617cbe18 100644
--- a/launcher/modplatform/EnsureMetadataTask.cpp
+++ b/launcher/modplatform/EnsureMetadataTask.cpp
@@ -75,14 +75,13 @@ QString EnsureMetadataTask::getHash(Mod* mod)
break;
}
case ModPlatform::Provider::FLAME: {
- QByteArray jar_data_treated;
- for (char c : jar_data) {
+ auto should_filter_out = [](char c) {
// CF-specific
- if (!(c == 9 || c == 10 || c == 13 || c == 32))
- jar_data_treated.push_back(c);
- }
+ return (c == 9 || c == 10 || c == 13 || c == 32);
+ };
- return QString::number(MurmurHash2(jar_data_treated, jar_data_treated.length()));
+ std::ifstream file_stream(mod->fileinfo().absoluteFilePath().toStdString(), std::ifstream::binary);
+ result = QString::number(MurmurHash2(std::move(file_stream), 4096, should_filter_out));
}
}