public static SnappyStatus snappy_uncompress(byte[] input, int input_offset, int input_length, byte[] output, int output_offset, ref int output_length) { var ulongOutput_length = (ulong)output_length; SnappyStatus status; using (var pinnedInput = new PinnedBuffer(input, input_offset)) using (var pinnedOutput = new PinnedBuffer(output, output_offset)) { status = Snappy64NativeMethods.snappy_uncompress(pinnedInput.IntPtr, (ulong)input_length, pinnedOutput.IntPtr, ref ulongOutput_length); output_length = (int)ulongOutput_length; } return(status); }
public static SnappyStatus snappy_uncompress(IntPtr input, int input_length, IntPtr output, ref int output_length) { SnappyStatus status; if (__is64BitProcess) { var ulongOutput_length = (ulong)output_length; status = Snappy64NativeMethods.snappy_uncompress(input, (ulong)input_length, output, ref ulongOutput_length); output_length = (int)ulongOutput_length; } else { var uintOutput_length = (uint)output_length; status = Snappy32NativeMethods.snappy_uncompress(input, (uint)input_length, output, ref uintOutput_length); output_length = (int)uintOutput_length; } return(status); }