diff options
author | flow <flowlnlnln@gmail.com> | 2022-07-23 23:16:28 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-07-24 17:46:53 -0300 |
commit | b1763353ea0fd2d1924e3560f0a674cb6260721b (patch) | |
tree | d56cd1012709c005334db40e83abcd6a3ba263cb /launcher/modplatform | |
parent | f95bcf45ad0e537a124f5aa0c7b9e97a78811289 (diff) | |
download | PrismLauncher-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.cpp | 11 |
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)); } } |