# HG changeset patch # User Ivo Smits # Date 1401920462 -7200 # Node ID 146a8d224d862c33948f8614d190758c1d4c4da0 # Parent 4ca44dd25a6a8d16e7223d1ac6c17a43f73ba566 Added ArrayUtil.Remove, fixed some exceptons diff -r 4ca44dd25a6a -r 146a8d224d86 Net/HTTP.cs --- a/Net/HTTP.cs Sun Feb 23 16:59:47 2014 +0100 +++ b/Net/HTTP.cs Thu Jun 05 00:21:02 2014 +0200 @@ -156,7 +156,7 @@ Context.SendHeader("Transfer-Encoding", "chunked"); OutputStream = Context.BeginResponseData(); Mode = HTTPResponseStreamMode.Chunked; - oldbuffer.WriteTo(this); + if (oldbuffer != null) oldbuffer.WriteTo(this); } public override void Write(byte[] buffer, int offset, int count) { diff -r 4ca44dd25a6a -r 146a8d224d86 Util/ArrayUtil.cs --- a/Util/ArrayUtil.cs Sun Feb 23 16:59:47 2014 +0100 +++ b/Util/ArrayUtil.cs Thu Jun 05 00:21:02 2014 +0200 @@ -158,9 +158,24 @@ } } public static int AddUnique(ref T[] array, T item) { + if (array == null) { + array = new T[] { item }; + return 0; + } else { + int index = Array.IndexOf(array, item); + if (index == -1) index = Add(ref array, item); + return index; + } + } + public static Boolean Remove(ref T[] array, T item) { + if (array == null) return false; int index = Array.IndexOf(array, item); - if (index == -1) index = Add(ref array, item); - return index; + if (index == -1) return false; + T[] newarray = new T[array.Length - 1]; + if (index > 0) Array.Copy(array, 0, newarray, 0, index); + if (index < array.Length - 1) Array.Copy(array, index + 1, newarray, index, array.Length - index - 1); + array = newarray; + return true; } } }