private static int WriteStream( out IntPtr stream_out, IntPtr backend, long len, GitObjectType type) { stream_out = IntPtr.Zero; OdbBackend odbBackend = MarshalOdbBackend(backend); if (odbBackend == null) { return((int)GitErrorCode.Error); } ObjectType objectType = type.ToObjectType(); try { OdbBackendStream stream; int toReturn = odbBackend.WriteStream(len, objectType, out stream); if (toReturn == 0) { stream_out = stream.GitOdbBackendStreamPointer; } return(toReturn); } catch (Exception ex) { Proxy.giterr_set_str(GitErrorCategory.Odb, ex); return((int)GitErrorCode.Error); } }
private static int WriteStream( out IntPtr stream_out, IntPtr backend, UIntPtr length, GitObjectType type) { stream_out = IntPtr.Zero; OdbBackend odbBackend = GCHandle.FromIntPtr(Marshal.ReadIntPtr(backend, GitOdbBackend.GCHandleOffset)).Target as OdbBackend; if (odbBackend != null && length.ToUInt64() < long.MaxValue) { OdbBackendStream stream; try { int toReturn = odbBackend.WriteStream((long)length.ToUInt64(), type, out stream); if (0 == toReturn) { stream_out = stream.GitOdbBackendStreamPointer; } return(toReturn); } catch (Exception ex) { Proxy.giterr_set_str(GitErrorCategory.Odb, ex); } } return((int)GitErrorCode.Error); }