Create for explodestream

This commit is contained in:
Adam Hathcock
2026-01-22 16:48:53 +00:00
parent 3b83d08e2a
commit 11b92d102a
3 changed files with 14 additions and 9 deletions

View File

@@ -161,7 +161,7 @@ internal abstract partial class ZipFilePart
}
case ZipCompressionMethod.Explode:
{
return new ExplodeStream(
return ExplodeStream.Create(
stream,
Header.CompressedSize,
Header.UncompressedSize,

View File

@@ -104,7 +104,7 @@ internal abstract partial class ZipFilePart : FilePart
}
case ZipCompressionMethod.Explode:
{
return new ExplodeStream(
return ExplodeStream.Create(
stream,
Header.CompressedSize,
Header.UncompressedSize,

View File

@@ -58,11 +58,10 @@ public class ExplodeStream : Stream, IStreamStack
private int distance;
private int length;
internal ExplodeStream(
Stream inStr,
long compressedSize,
long uncompressedSize,
HeaderFlags generalPurposeBitFlag
private ExplodeStream(Stream inStr,
long compressedSize,
long uncompressedSize,
HeaderFlags generalPurposeBitFlag
)
{
inStream = inStr;
@@ -72,10 +71,16 @@ public class ExplodeStream : Stream, IStreamStack
this.compressedSize = (int)compressedSize;
unCompressedSize = (long)uncompressedSize;
this.generalPurposeBitFlag = generalPurposeBitFlag;
explode_SetTables();
windowsBuffer = new byte[WSIZE];
}
internal static ExplodeStream Create(Stream inStr, long compressedSize, long uncompressedSize, HeaderFlags generalPurposeBitFlag)
{
var ex = new ExplodeStream(inStr, compressedSize, uncompressedSize, generalPurposeBitFlag);
ex.explode_SetTables();
ex.
explode_var_init();
return ex;
}
protected override void Dispose(bool disposing)