From ef2dec992c9f9aac189b176c1c61abc8624b28be Mon Sep 17 00:00:00 2001 From: sta Date: Sun, 9 Jun 2019 22:34:21 +0900 Subject: [PATCH] [Modify] Throw exception --- websocket-sharp/Ext.cs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/websocket-sharp/Ext.cs b/websocket-sharp/Ext.cs index a8767674..72b88599 100644 --- a/websocket-sharp/Ext.cs +++ b/websocket-sharp/Ext.cs @@ -1584,15 +1584,25 @@ namespace WebSocketSharp /// public static T[] SubArray (this T[] array, int startIndex, int length) { - int len; - if (array == null || (len = array.Length) == 0) - return new T[0]; + if (array == null) + throw new ArgumentNullException ("array"); - if (startIndex < 0 || length <= 0 || startIndex + length > len) - return new T[0]; + var len = array.Length; + if (len == 0) { + if (startIndex != 0) + throw new ArgumentOutOfRangeException ("startIndex"); + + if (length != 0) + throw new ArgumentOutOfRangeException ("length"); - if (startIndex == 0 && length == len) return array; + } + + if (startIndex < 0 || startIndex > len - 1) + throw new ArgumentOutOfRangeException ("startIndex"); + + if (length < 0 || length > len - startIndex) + throw new ArgumentOutOfRangeException ("length"); var subArray = new T[length]; Array.Copy (array, startIndex, subArray, 0, length);