Browse Source

FIX: Zip - slow gzip-file opening

Alexander Koblov 3 năm trước cách đây
mục cha
commit
8cd00f4a05
1 tập tin đã thay đổi với 7 bổ sung1 xóa
  1. 7 1
      plugins/wcx/zip/src/fparchive/abzlibprc.pas

+ 7 - 1
plugins/wcx/zip/src/fparchive/abzlibprc.pas

@@ -79,11 +79,17 @@ end;
 function Inflate(aSource: TStream; aDest: TStream;
                  aHelper: TAbDeflateHelper): longint;
 var
+  ACount: Int64;
   AInflateStream: TInflateStream;
 begin
   AInflateStream:= TInflateStream.Create(aSource, True);
   try
-    aHelper.NormalSize:= aDest.CopyFrom(AInflateStream, aHelper.NormalSize);
+    if aHelper.PartialSize > 0 then
+      ACount:= aHelper.PartialSize
+    else begin
+      ACount:= aHelper.NormalSize;
+    end;
+    aHelper.NormalSize:= aDest.CopyFrom(AInflateStream, ACount);
     aHelper.CompressedSize:= AInflateStream.compressed_read;
     Result:= LongInt(AInflateStream.FHash);
   finally