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