private unsafe static int Read( IntPtr stream, IntPtr buffer, UIntPtr len) { OdbBackendStream odbBackendStream = GCHandle.FromIntPtr(Marshal.ReadIntPtr(stream, GitOdbBackendStream.GCHandleOffset)).Target as OdbBackendStream; if (odbBackendStream != null) { long length = OdbBackend.ConverToLong(len); using (UnmanagedMemoryStream memoryStream = new UnmanagedMemoryStream((byte *)buffer, 0, length, FileAccess.ReadWrite)) { try { return(odbBackendStream.Read(memoryStream, length)); } catch (Exception ex) { Proxy.giterr_set_str(GitErrorCategory.Odb, ex); } } } return((int)GitErrorCode.Error); }
private unsafe static int Read( IntPtr stream, IntPtr buffer, UIntPtr len) { OdbBackendStream odbBackendStream = GCHandle.FromIntPtr(Marshal.ReadIntPtr(stream, GitOdbBackendStream.GCHandleOffset)).Target as OdbBackendStream; if (odbBackendStream != null && len.ToUInt64() < long.MaxValue) { using (UnmanagedMemoryStream memoryStream = new UnmanagedMemoryStream((byte *)buffer, 0, (long)len.ToUInt64(), FileAccess.ReadWrite)) { try { return(odbBackendStream.Read(memoryStream, (long)len.ToUInt64())); } catch (Exception ex) { Proxy.giterr_set_str(GitErrorCategory.Odb, ex); } } } return((int)GitErrorCode.Error); }