New test.
[mono.git] / mcs / class / corlib / System.Collections.Generic / ChangeLog
index 7f9430332743af549074a51b4ec60b224373a0cf..aa07be9838330f6b323534cd6cd9eee58019dbee 100644 (file)
@@ -1,3 +1,334 @@
+2010-03-19  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CollectionDebuggerView.cs: Change to internal so we can avoid
+       a duplicating the type in assemblies that have [InternalsVisibleTo]
+
+2010-01-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * EqualityComparer.cs: (Equals) the arguments are checked to be
+       the correct type.
+
+2010-01-24  Robert Jordan  <robertj@gmx.net>
+
+       * Dictionary.cs: Fix deserialization compatibility with MS.NET.
+       Fixes bug #474009.
+
+2010-01-20  Miguel de Icaza  <miguel@novell.com>
+
+       * Dictionary.cs: Always create the keys, fixes compatibility
+       between Mono and .NET.  Patch from John Lenz <jlenz2@math.uiuc.edu>
+
+2009-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * KeyValuePair.cs: we need setters for Key and Value so they can
+       be set via reflection from
+       System.ServiceModel.System.Runtime.Serialization.Json.TypeMap.cs.
+
+2009-11-26  Marek Safar <marek.safar@gmail.com>
+       
+       * CollectionDebuggerView.cs: Removed limit restriction.
+
+2009-11-23   Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * Comparer.cs: Our DefaultComparer class should be serializable just
+       as the generic one is.
+       Fixes #503585.
+
+2009-11-23  Juraj Skripsky <js@hotfeet.ch>
+
+       * List.cs (Sort): Call more appropriate overload of Array.Sort<T>.
+       Array.Sort<T> should be able to determine the comparison itself.
+       Speeds up the sorting for items of primitive type. 
+       Fixes #530450.
+
+2009-11-08  Juraj Skripsky <js@hotfeet.ch>
+
+       * List.cs (Sort): Sync to latest changes in Array.Sort.
+
+2009-10-20  Marek Safar <marek.safar@gmail.com>
+       
+       * List.cs, CollectionDebuggerView.cs, KeyValuePair.cs, Dictionary.cs
+       Improve debugging experience.
+
+2009-10-19  Marek Safar <marek.safar@gmail.com>
+       
+       * CollectionDebuggerView.cs: New file.
+
+2009-10-17  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EqualityComparer.cs: Seal internal classes
+
+2009-10-02  Raja R Harinath  <harinath@hurrynot.org>
+
+       * Dictionary.cs (Do_ICollectionCopyTo): Revert 2009-10-01 change.
+       Use BOOTSTRAP_BASIC to hide code from gmcs 2.4.x.
+
+2009-10-01  Marek Habersack  <mhabersack@novell.com>
+
+       * Dictionary.cs: cast target array to TRet[] instead of object[] -
+       may fail, but otherwise it doesn't compile with 2.4 (e.g. when
+       bootstrapping trunk)
+
+2009-09-22  Raja R Harinath  <harinath@hurrynot.org>
+
+       Ensure that invalid arrays to CopyTo result in ArgumentExceptions.
+       * Dictionary.cs (CopyToCheck, Do_CopyTo): Carve out of ...
+       (CopyTo): ... this.
+       (Do_ICollectionCopyTo): Carve out of ICollection.CopyTo.  Convert
+       type-cast exceptions to ArgumentExceptions.
+       (KeyCollection.CopyTo): Use them.
+       (ValueCollection.CopyTo): Use them.
+
+2009-07-31  Raja R Harinath  <harinath@hurrynot.org>
+
+       * List.cs (IList.this.set): Convert NullReference and InvalidCast
+       exceptions into ArgumentExceptions.
+       (IList.Add, IList.Contains, IList.IndexOf, IList.Insert, IList.Remove):
+       Convert NullReferenceException to ArgumentException.
+
+2009-07-31  Raja R Harinath  <harinath@hurrynot.org>
+
+       * List.cs (Enumerator.next): Rename from Enumerator.idx and change
+       meaning to be the index of the next item to be enumerated.
+       (Enumerator.MoveNext): Simplify.
+
+2009-07-31  Raja R Harinath  <harinath@hurrynot.org>
+
+       * Dictionary.cs (Enumerator.next): Rename from Enumerator.cur and
+       change meaning to be the index of the slot to start searching on
+       the next iteration.
+       (Enumerator.MoveNext): Avoid an out-of-bounds access.
+
+2009-07-30  Raja R Harinath  <harinath@hurrynot.org>
+
+       * List.cs (Enumerator.current): New.
+       (Enumerator.MoveNext): Update it.
+       (Enumerator.Current): Don't verify any invariants.
+       (Enumerator.Dispose): Set 'l' to null.
+
+2009-07-29  Raja R Harinath  <harinath@hurrynot.org>
+
+       * Dictionary.cs (Enumerator.current): New.
+       (Enumerator.MoveNext): Update it.
+       (Enumerator.Current): Don't verify any invariants.
+
+2009-06-10  Marek Safar <marek.safar@gmail.com>
+
+       * IEqualityComparer.cs, IComparer.cs, IEnumerable.cs,
+       IEnumerator.cs: Add type variance.
+
+2009-04-02  Jb Evain  <jbevain@novell.com>
+
+       * Dictionary.cs (ValueCollection.CopyTo): fix for copying to
+       an object array. Based on a patch by Tobias Grimm <mono@e-tobi.net>.
+       Fixes bug #328036.
+
+2009-02-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * Dictionary.cs: Declare the Link struct outside the main class to avoid
+       creating a separate inflated instances for each instantiation of Dictionary.
+
+2008-11-14  Jb Evain  <jbevain@novell.com>
+
+       * Dictionary.cs (ICollection.CopyTo): fix the different possible
+       copying cases depending on the actual type of destination array,
+       be it an array of KeyValuePair, DictionaryEntry, or object.
+       Fixes #444778.
+
+2008-11-14  Jb Evain  <jbevain@novell.com>
+
+       * Dictionary.cs: fix ICollection<KeyValuePair<T>>.Remove and .Contains
+       to not only check if the key exists but if the associated value is the
+       good one as well. Fixes #444768.
+
+2008-10-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * Dictionary.cs (Clear): Clear the linkSlots array as well, as 
+       Enumerator.MoveNext () depends on it. Fixes #432441.
+
+Fri Oct 3 23:08:06 CEST 2008 Paolo Molaro <lupus@ximian.com>
+
+       * Dictionary.cs: by popular demand, return keys/values in insertion
+       order when possible.
+
+2008-09-29  Jb Evain  <jbevain@novell.com>
+
+       * Dictionary.cs: check for null argument in ContainsKey.
+       Patch by Jonathan Anderson  <jonathan.l.anderson@gmail.com>
+
+2008-09-24  Jb Evain  <jbevain@novell.com>
+
+       * Dictionary.cs: properly reset all compounds enumerators.
+       Fixes #429530.
+
+2008-09-12  Jb Evain  <jbevain@novell.com>
+
+       * Dictionary.cs: (ToTValue) allow null values to be added for non
+       value types TValues to the dictionary when using the
+       non generic IDictionary. Fixes #425693.
+
+2008-06-16  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
+
+       * String.cs: Dictionary: Do not change the index data when using the indexer for
+       an already existing index. This is somewhat illogical and breakes obscure code situations
+
+2008-05-29  Juraj Skripsky <js@hotfeet.ch>
+
+       * List.cs (RemoveAll, Shift): Fix leak by clearing empty array
+       items.
+
+2008-04-29  Juraj Skripsky <js@hotfeet.ch>
+
+       * Dictionary.cs (Clear, Remove): Clear empty slots in keySlots 
+       and valueSlots. Otherwise the garbage collector cannot reclaim 
+       the referenced key/value. Fixes bug #384723.
+
+2008-04-02  Andreas Nahr  <ClassDevelopment@A-SoftTech.com>
+
+       * KeyNotFoundException.cs
+       * KeyValuePair.cs: Fix parameter names
+
+2008-03-21  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EqualityComparer.cs: Add null checks in GetHashCode. Fix bug 
+       #372892
+
+2007-11-05  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Dictionary.cs: Ensure that the non-generic CopyTo works on Array.
+       Fix #322783
+
+2007-10-31  Miguel de Icaza  <miguel@novell.com>
+
+       * Dictionary.cs: Do not increment curTableItem when we return
+       false.   Was not necessary, just a defensive move.
+
+2007-10-10  Juraj Skripsky <js@hotfeet.ch>
+
+       * Dictionary.cs (Enumerator.MoveNext): Handle the case where we
+       had already reached the end. Fixes bug #332534.
+
+2007-08-20  Jb Evain  <jbevain@novell.com>
+
+       * List.cs (AddCollection): return early if the collection
+       to be added is empty.
+
+2007-08-08  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Dictionary.cs : [Comvisible(true)]->[ComVisible(false)].
+
+2007-06-23  Marek Safar <marek.safar@gmail.com>
+
+       * List.cs: Make CheckMatch static.
+       
+2007-06-20  Juraj Skripsky <js@hotfeet.ch>
+
+       * Dictionary.cs: Optimize and add implementation notes. Use a "mini-heap"
+       to store the linked lists instead of the regular heap. Split arrays of
+       structs into separate arrays to make the GC's life simpler (see bug 81879
+       for details). Make class serialization compatible with MS.NET.
+
+       * EqualityComparer.cs: Rename IEquatableOfTEqualityComparer<T> to
+       GenericEqualityComparer<T> to fix binary serialization compatibility
+       with MS.
+
+2006-04-16  Jonathan Chambers  <joncham@gmail.com>
+
+       * List.cs: Clear entry in RemoveAt after removing item. 
+       Fixes bug #81387.
+       
+2007-03-27  Alan McGovern <alan.mcgovern@gmail.com>
+
+       * List.cs: Optimized several methods to increase performance
+
+2007-03-21  Juraj Skripsky <js@hotfeet.ch>
+
+       * List.cs (FindAllStackBits): Small optimization to the new code.
+       Built resulting List<T> directly as an array, wrap it in a List<T>
+       afterwards. Stop the filling of the result array as soon as all
+       matching items have been processed.
+
+2007-03-20  Juan Cristóbal Olivares <juancri@gmail.com>
+
+       * List.cs (FindAll): Optimize FindAll using a bitmask to determine
+       the number of positive matches, this increases the performance in
+       all cases below 10,000,000 elements extensively:
+
+       100 elements:
+       old method:             00:00:00.0126610 (26x)
+       stackalloc bit method:  00:00:00.0004750 (1x)
+       array bit method:       00:00:00.0010700 (2x)
+       heap bit method:        00:00:00.0038830 (8x)
+
+       1,000 elements:
+       old method:             00:00:00.0139250 (24x)
+       stackalloc bit method:  00:00:00.0005670 (1x)
+       array bit method:       00:00:00.0010890 (2x)
+       heap bit method:        00:00:00.0034920 (6x)
+
+       10,000 elements:
+       old method:             00:00:00.0136110 (12x)
+       stackalloc bit method:  00:00:00.0011240 (1x)
+       array bit method:       00:00:00.0016450 (1.4x)
+       heap bit method:        00:00:00.0043110 (3x)
+
+       50,000 elements:
+       old method:             00:00:00.0175970 (3x)
+       stackalloc bit method:  00:00:00.0085630 (1.5x)
+       array bit method:       00:00:00.0055010 (1x)
+       heap bit method:        00:00:00.0099590 (1.8x)
+
+       100,000 elements:
+       old method:             00:00:00.0210330 (2x)
+       array bit method:       00:00:00.0100430 (1x)
+       heap bit method:        00:00:00.0154150 (1.5x)
+
+       1,000,000 elements:
+       old method:             00:00:00.1243730 (1.2x)
+       array bit method:       00:00:00.0973110 (1x)
+       heap bit method:        00:00:00.1285650 (1.3x)
+
+       10,000,000 elements:
+       old method:             00:00:00.9252570 (1x)
+       array bit method:       00:00:00.9632300 ( 1.05x)
+       heap bit method:        00:00:01.1098490 (1.20x)
+
+2007-03-08  David Mitchell <dmitchell@logos.com>
+
+       * List.cs: Fix the case where List.set_Item(int index) throws
+       inappropriate exception when index is equal to List.Count
+
+       List.IndexOf(object item) and IList.Contains(object item) throw
+       exceptions when given invalid types.
+
+       IList.Add(object item) throws InvalidCastException when item is
+       not of the correct type.
+
+2007-03-08  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * Comparer.cs: Renamed IComparableOfTComparer<T> to GenericComparer<T>
+       to fix binary serialization compatibility with MS.
+
+2007-03-05  David Mitchell <dmitchell@logos.com>
+
+       * Dictionary.cs: An instance of Dictionary<TKey,TValue> is
+       supposed to throw a KeyNotFoundException when 
+       the user attempts to retrieve the value associated with a key that
+       is not in the dictionary.
+
+       On the other hand, an instance of IDictionary is supposed to
+       return null in similar circumstances.
+
+2007-03-05  David Mitchell <dmitchell@logos.com>
+
+       * List.cs: Fix InsertRange bug (80930).
+
+2006-09-15  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * List.cs: Fixed binary serialization compatibility with MS.NET.
+       Increment version whenever _items is modified; this fixes version
+       checks in Enumerator.
+
 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
 
        * Dictionary.cs: Speed up get_Item/set_Item/GetPrev () a bit. Increase capacity