Skip to content

Commit 9a77fe6

Browse files
committed
Actually implement the compress method
1 parent 6857e20 commit 9a77fe6

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

Diff for: src/Helpers/ZStdHelper.cs

+8-9
Original file line numberDiff line numberDiff line change
@@ -38,22 +38,21 @@ public static SpanOwner<byte> Decompress(string file)
3838

3939
public static void Compress(string file, string output, bool useDictionaries)
4040
{
41-
using SpanOwner<byte> compressed = Compress(file, useDictionaries);
41+
Span<byte> compressed = Compress(file, useDictionaries);
4242
using FileStream fs = File.Create(output);
43-
fs.Write(compressed.Span);
43+
fs.Write(compressed);
4444
}
4545

46-
public static SpanOwner<byte> Compress(string file, bool useDictionaries)
46+
public static Span<byte> Compress(string file, bool useDictionaries)
4747
{
4848
using FileStream fs = File.OpenRead(file);
4949
int size = Convert.ToInt32(fs.Length);
5050
using SpanOwner<byte> buffer = SpanOwner<byte>.Allocate(size);
5151
fs.Read(buffer.Span);
5252

53-
size = Zstd.GetDecompressedSize(buffer.Span);
54-
SpanOwner<byte> decompressed = SpanOwner<byte>.Allocate(size);
55-
Totk.Zstd.Decompress(buffer.Span, decompressed.Span);
56-
return decompressed;
53+
SpanOwner<byte> compressed = SpanOwner<byte>.Allocate(size);
54+
size = Totk.Zstd.Compress(buffer.Span, compressed.Span, file.GetDictioanryId(useDictionaries));
55+
return compressed.Span[..size];
5756
}
5857

5958
public static void DecompressFolder(string path, string output, bool recursive, Action<int>? setCount = null, Action<int>? updateCount = null)
@@ -83,12 +82,12 @@ public static void CompressFolder(string path, string output, bool recursive, Ac
8382
for (int i = 0; i < files.Length; i++)
8483
{
8584
string file = files[i];
86-
using SpanOwner<byte> data = Compress(file, useDictionaries);
85+
Span<byte> compresses = Compress(file, useDictionaries);
8786

8887
string outputFile = Path.Combine(output, Path.GetRelativePath(path, $"{file}.zs"));
8988
Directory.CreateDirectory(Path.GetDirectoryName(outputFile)!);
9089
using FileStream fs = File.Create(outputFile);
91-
fs.Write(data.Span);
90+
fs.Write(compresses);
9291

9392
updateCount?.Invoke(i + 1);
9493
}

0 commit comments

Comments
 (0)