Hello,

The attached trivial patch makes ArrayList.Adapter() return the given
IList unchanged if it already is an ArrayList.

Please review.

- Juraj
Index: corlib/System.Collections/ChangeLog
===================================================================
--- corlib/System.Collections/ChangeLog	(revision 82204)
+++ corlib/System.Collections/ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2007-07-19  Juraj Skripsky  <[EMAIL PROTECTED]>
+
+   * ArrayList.cs (ArrayList.Adapter): If the given list already is an
+   ArrayList, just return it directly.
+
 2007-07-05  Gert Driesen  <[EMAIL PROTECTED]>
 
 	* CaseInsensitiveHashCodeProvider.cs: Lazy init Default instance and
Index: corlib/System.Collections/ArrayList.cs
===================================================================
--- corlib/System.Collections/ArrayList.cs	(revision 82204)
+++ corlib/System.Collections/ArrayList.cs	(working copy)
@@ -3251,14 +3251,16 @@
 				throw new ArgumentNullException("list");
 			}
 
-			if (list.IsSynchronized) 
-			{
-				return ArrayList.Synchronized(new ArrayListAdapter(list));
-			}
+			ArrayList arrayList = list as ArrayList;
+			if (arrayList != null)
+				return arrayList;
+			else
+				arrayList = new ArrayListAdapter(list);
+
+			if (list.IsSynchronized)
+				return ArrayList.Synchronized(arrayList);
 			else 
-			{
-				return new ArrayListAdapter(list);
-			}
+				return arrayList;
 		}
 
 		public static ArrayList Synchronized(ArrayList arrayList) 
_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to