Skip to content

Commit c993221

Browse files
ext: bump minizip-ng, accelerate zip parser by a significant amount
1 parent 43daebe commit c993221

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

ext/_ext.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ if(NOT TARGET MINIZIP::minizip)
5656
set(MZ_WZAES OFF CACHE INTERNAL "")
5757
set(MZ_OPENSSL OFF CACHE INTERNAL "")
5858
set(SKIP_INSTALL_ALL ON CACHE INTERNAL "" FORCE)
59-
add_sourcepp_remote_library(minizip-ng https://github.com/craftablescience/minizip-ng b1fd11fba9557ca208571c3484f34a38155a22b6)
59+
add_sourcepp_remote_library(minizip-ng https://github.com/craftablescience/minizip-ng 567affbf0caf11c5a0e1f76f722fbadc65c6efd9)
6060

6161
if(WIN32 AND SOURCEPP_BUILD_WIN7_COMPAT)
6262
set_source_files_properties(

src/vpkpp/format/ZIP.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,14 @@ bool ZIP::bakeTempZip(const std::string& writeZipPath, BakeOptions options, cons
197197

198198
mz_zip_set_version_madeby(writeZipHandle, MZ_VERSION_MADEBY);
199199

200-
const auto time = std::time(nullptr);
200+
const auto modifiedTime = std::time(nullptr);
201+
const auto modifiedTimeDOS = mz_zip_time_t_to_dos_date(modifiedTime);
201202

202203
const bool overrideCompression = options.zip_compressionTypeOverride != EntryCompressionType::NO_OVERRIDE;
203204

204205
bool noneFailed = true;
205-
this->runForAllEntries([this, &options, &callback, writeZipHandle, time, overrideCompression, &noneFailed](const std::string& path, const Entry& entry) {
206-
auto binData = this->readEntry(path);
206+
this->runForAllEntries([this, &options, &callback, writeZipHandle, modifiedTime, modifiedTimeDOS, overrideCompression, &noneFailed](const std::string& path, const Entry& entry) {
207+
const auto binData = this->readEntry(path);
207208
if (!binData) {
208209
return;
209210
}
@@ -220,8 +221,8 @@ bool ZIP::bakeTempZip(const std::string& writeZipPath, BakeOptions options, cons
220221
fileInfo.filename = path.c_str();
221222
fileInfo.filename_size = path.length();
222223
fileInfo.version_madeby = MZ_VERSION_MADEBY;
223-
fileInfo.creation_date = time;
224-
fileInfo.modified_date = time;
224+
fileInfo.creation_date = modifiedTime;
225+
fileInfo.modified_date = modifiedTimeDOS;
225226
fileInfo.compression_method = overrideCompression ? static_cast<uint16_t>(options.zip_compressionTypeOverride) : entry.flags >> 16;
226227
fileInfo.flag = MZ_ZIP_FLAG_DATA_DESCRIPTOR | MZ_ZIP_FLAG_UTF8;
227228
fileInfo.uncompressed_size = static_cast<int64_t>(entry.length);

0 commit comments

Comments
 (0)