aboutsummaryrefslogtreecommitdiff
path: root/lib/Net.Compression/VNLib.Net.Compression/CompressionExtensions.cs
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-09-13 11:00:17 -0400
committerLibravatar vnugent <public@vaughnnugent.com>2023-09-13 11:00:17 -0400
commitcdeda79bc7d358c617b05b17d24f3f3c79689379 (patch)
tree387d05ff42725024579299dc3e941fa950722275 /lib/Net.Compression/VNLib.Net.Compression/CompressionExtensions.cs
parentdcf6f9dc0143eb50b702eb7dcd9e5dadd140537c (diff)
Overhaul cmake, fix some warnings, and reconfigure proper compiler options with hardware support
Diffstat (limited to 'lib/Net.Compression/VNLib.Net.Compression/CompressionExtensions.cs')
-rw-r--r--lib/Net.Compression/VNLib.Net.Compression/CompressionExtensions.cs16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/Net.Compression/VNLib.Net.Compression/CompressionExtensions.cs b/lib/Net.Compression/VNLib.Net.Compression/CompressionExtensions.cs
index 0a4f7aa..ab451d9 100644
--- a/lib/Net.Compression/VNLib.Net.Compression/CompressionExtensions.cs
+++ b/lib/Net.Compression/VNLib.Net.Compression/CompressionExtensions.cs
@@ -42,6 +42,14 @@ namespace VNLib.Net.Compression
/// <returns>The results of the compression operation</returns>
public static unsafe CompressionResult CompressBlock(this LibraryWrapper nativeLib, IntPtr comp, Memory<byte> output, ReadOnlyMemory<byte> input, bool finalBlock)
{
+ /*
+ * Since .NET only supports int32 size memory blocks
+ * we dont need to worry about integer overflow.
+ *
+ * Output sizes can never be larger than input
+ * sizes (read/written)
+ */
+
//get pointers to the input and output buffers
using MemoryHandle inPtr = input.Pin();
using MemoryHandle outPtr = output.Pin();
@@ -56,10 +64,10 @@ namespace VNLib.Net.Compression
//Configure the input and output buffers
op->inputBuffer = inPtr.Pointer;
- op->inputSize = input.Length;
+ op->inputSize = (uint)input.Length;
op->outputBuffer = outPtr.Pointer;
- op->outputSize = output.Length;
+ op->outputSize = (uint)output.Length;
//Call the native compress function
nativeLib!.CompressBlock(comp, &operation);
@@ -67,8 +75,8 @@ namespace VNLib.Net.Compression
//Return the number of bytes written
return new()
{
- BytesRead = op->bytesRead,
- BytesWritten = op->bytesWritten
+ BytesRead = (int)op->bytesRead,
+ BytesWritten = (int)op->bytesWritten
};
}
}