From a68bcc575205311399ca4f50765bc8f5df5e6acf Mon Sep 17 00:00:00 2001 From: ldy Date: Thu, 5 Jun 2025 07:18:14 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A7=A3=E5=8E=8B=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ldy --- services/package/pkg_package/pkg_zipfile.cpp | 32 ++------------------ services/package/pkg_package/pkg_zipfile.h | 2 -- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/services/package/pkg_package/pkg_zipfile.cpp b/services/package/pkg_package/pkg_zipfile.cpp index b2325cc4..9b87ef97 100644 --- a/services/package/pkg_package/pkg_zipfile.cpp +++ b/services/package/pkg_package/pkg_zipfile.cpp @@ -34,7 +34,6 @@ constexpr uint32_t LOCAL_HEADER_SIGNATURE = 0x04034b50; constexpr uint32_t CENTRAL_SIGNATURE = 0x02014b50; constexpr uint32_t END_CENTRAL_SIGNATURE = 0x06054b50; constexpr uint32_t DATA_DESC_SIGNATURE = 0x08074b50; -constexpr uint32_t MAX_BUFFER_SIZE = 1024 * 64; // mask value that signifies that the entry has a DD constexpr uint32_t GPBDD_FLAG_MASK = 0x0008; constexpr uint32_t ZIP_PKG_ALIGNMENT_DEF = 1; @@ -636,31 +635,6 @@ int32_t ZipFileEntry::DecodeLocalFileHeader(PkgStreamPtr inStream, PkgBuffer &da return PKG_SUCCESS; } -int32_t ZipFileEntry::Stored(const PkgStreamPtr inStream, const PkgStreamPtr outStream, - PkgAlgorithmContext &context) -{ - size_t start = 0; - size_t startWrite = 0; - size_t remainSize = context.packedSize; - while (remainSize > 0) { - PkgBuffer buffer(MAX_BUFFER_SIZE); - size_t readLen = (remainSize > buffer.length) ? buffer.length : remainSize; - int32_t ret = inStream->Read(buffer, context.srcOffset, readLen, start); - if (ret != PKG_SUCCESS) { - PKG_LOGE("read buffer from inStream failed"); - return ret; - } - ret = outStream->Write(buffer, readLen, startWrite); - if (ret != PKG_SUCCESS) { - PKG_LOGE("write buffer in outStream failed"); - return ret; - } - startWrite += readLen; - remainSize -= readLen; - } - return PKG_SUCCESS; -} - int32_t ZipFileEntry::Unpack(PkgStreamPtr outStream) { PkgAlgorithm::PkgAlgorithmPtr algorithm = PkgAlgorithmFactory::GetAlgorithm(&fileInfo_.fileInfo); @@ -681,12 +655,12 @@ int32_t ZipFileEntry::Unpack(PkgStreamPtr outStream) }; int32_t ret = PKG_SUCCESS; switch (fileInfo_.method) { + case Z_STORED: + algorithm = std::make_shared(); + [[fallthrough]]; case Z_DEFLATED: ret = algorithm->Unpack(inStream, outStream, context); break; - case Z_STORED: - ret = Stored(inStream, outStream, context); - break; default: ret = PKG_INVALID_PARAM; break; diff --git a/services/package/pkg_package/pkg_zipfile.h b/services/package/pkg_package/pkg_zipfile.h index 4ff06caf..6f4866ca 100644 --- a/services/package/pkg_package/pkg_zipfile.h +++ b/services/package/pkg_package/pkg_zipfile.h @@ -141,8 +141,6 @@ public: int32_t Pack(PkgStreamPtr inStream, size_t startOffset, size_t &encodeLen) override; - int32_t Stored(const PkgStreamPtr inStream, const PkgStreamPtr outStream, PkgAlgorithmContext &context); - int32_t Unpack(PkgStreamPtr outStream) override; int32_t DecodeHeader(PkgBuffer &buffer, size_t headerOffset, size_t dataOffset, -- Gitee