2010-04-07 Jb Evain <jbevain@novell.com>
[mcs.git] / class / corlib / System.Collections / ChangeLog
blob22fdde9768a6d0f88cd2f4d6ab06604eef6041c6
1 2010-03-19  Sebastien Pouliot  <sebastien@ximian.com>
3         * CollectionDebuggerView.cs: Change to internal so we can avoid
4         a duplicating the type in assemblies that have [InternalsVisibleTo]
6 2010-03-16  Jb Evain  <jbevain@novell.com>
8         * IStructuralComparable.cs, IStructuralEquatable.cs: use
9         MOONLIGHT symbol to disambiguate MonoTouch and Moonlight code.
11 2010-03-12  Sebastien Pouliot  <sebastien@ximian.com>
13         * IStructuralComparable.cs, IStructuralEquatable.cs: Add them to
14         NET_2_1 since they are parts of SL4
16 2009-11-26  Marek Safar <marek.safar@gmail.com>
17         
18         * CollectionDebuggerView.cs: Removed limit restriction.
20 2009-10-22  Marek Safar  <marek.safar@gmail.com>
22         * StructuralComparisons.cs: Implemented.
24         * SortedList.cs Add nicer debug view for tools which support it.
26 2009-10-16  Miguel de Icaza  <miguel@novell.com>
28         * Jumbo patch to elimiante more dead code now that we have dropped
29         pre-2.0 profiles.
31 2009-09-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
33         * Hashtable.cs: MS (at least latest and greatest) does not always
34         serialized the HashCodeProvider. Ignoring the error when the field
35         is not found.
37 2009-09-24  Marek Safar  <marek.safar@gmail.com>
39         * Queue.cs, DictionaryEntry.cs, Hashtable.cs,
40         CollectionDebuggerView.cs, Stack.cs, ArrayList.cs: Add nicer debug
41         view for tools which support it.
43 2009-09-22  Marek Safar  <marek.safar@gmail.com>
45         * Queue.cs, Hashtable.cs, SortedList.cs, Stack.cs, ArrayList.cs:
46         Add DebuggerDisplay attribute.
48 2009-07-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
50         * SortedList.cs: same issue as bug #521750 in System.
52 2009-05-22  Zoltan Varga  <vargaz@gmail.com>
54         * IStructuralComparable.cs IStructuralEquatable.cs: New files.
56 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
58         * BitArray.cs (CopyTo): Allow an index equal to the array length if
59         the bit array has no elements. Fixes #421803.
61 2008-08-05  Jb Evain  <jbevain@novell.com>
63         * CaseInsensitiveHashCodeProvider.cs: refactor CultureInfo
64         comparison to also work for SL2.
66 2008-08-04  Jb Evain  <jbevain@novell.com>
68         * Hashtable.cs: cleanup internal KeyMarker type for NET_2_1.
70 2008-08-04  Jb Evain  <jbevain@novell.com>
72         * ArrayList.cs: introduce a helper method to throw
73         ArgumentOutOfRangeExceptions correctly as SL miss some
74         constructors.
76 2008-05-29  Juraj Skripsky  <js@hotfeet.ch>
78         * ArrayList.cs: Create the empty array only once and reuse it.
80 2008-05-23  Miguel de Icaza  <miguel@novell.com>
82         * Hashtable.cs: Implement a faster clone that does not use an
83         enumerator to iterate over the values, this doubles the speed of
84         Clone.
86         The use of an internal constructor that builds from a Hashtable is
87         done to avoid populating a Hashtable and then updating every field
88         and structure with new data.
90 2008-05-08  Robert Jordan  <robertj@gmx.net>
92         * DictionaryEntry.cs: Rename fields for serialization
93         compatibility with MS. Accept null keys on 2.0 profile.
94         Fixes #381922.
96 2008-04-13  Jb Evain  <jbevain@novell.com>
98         * ArrayList.cs, BitArray.cs, CaseInsensitiveComparer.cs
99         CaseInsensitiveHashCodeProvider.cs, CollectionBase.cs,
100         Comparer.cs, IHashCodeProvider.cs, Hashtable.cs,
101         Queue.cs, Stack.cs: use the INSIDE_CORLIB pattern to
102         internalize code that is used outside the corlib.
103         Merged from the Moonlight 2 branch.
105 2008-04-02  Andreas Nahr  <ClassDevelopment@A-SoftTech.com>
107         * ArrayList.cs
108         * DictionaryBase.cs
109         * IEqualityComparer.cs
110         * Queue.cs
111         * SortedList.cs
112         * Stack.cs: Fix parameter names
114 2008-03-24  Gert Driesen  <drieseng@users.sourceforge.net>
116         * DictionaryBase.cs: Restore previous behavior of indexer for the
117         1.0 profile. On 2.0 profile, do nothing in IDictionary.Remove if
118         the key is not present in the hashtable. On 2.0 profile, we also need
119         to add entry back to hashtable when an exception is thrown in
120         OnRemoveComplete.
122 2008-03-21  Sebastien Pouliot  <sebastien@ximian.com>
124         * DictionaryBase.cs: Fix getter on IDictionary.this to avoid two
125         access to the hashtable and to behave more closely to MS 
126         implementation (see new unit tests).
128 2007-11-06  Jb Evain  <jbevain@novell.com>
130         * Hashtable.cs: Don't compare user keys against the special removed
131         key. Fix #324761.
133 2007-11-05  Sebastien Pouliot  <sebastien@ximian.com>
135         * Queue.cs: Avoid IndexOutOfRangeException after TrimToSize. Patch by
136         Benjamin Lutz. Fix #321657.
138 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
140         * Hashtable.cs: Put the hash values into a separate array to help the GC. Fixes
141         #336069.
143 2007-10-23  Robert Jordan  <robertj@gmx.net>
145         * SortedList.cs: Mark List|{Values|Keys} as serializable.
146         Fixes #335703.
148 2007-08-25  Zoltan Varga  <vargaz@gmail.com>
150         * ArrayList.cs: Fix overflows in BinarySearch and qsort.
152 2007-08-08  Atsushi Enomoto  <atsushi@ximian.com>
154         * ReadOnlyCollectionBase.cs CollectionBase.cs :
155           cosmetic 2.0 API fixes.
157 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
159         * ArrayList.cs (ArrayList.Adapter): If the given list already is an
160         ArrayList, just return it directly.
162 2007-07-05  Gert Driesen  <drieseng@users.sourceforge.net>
164         * CaseInsensitiveHashCodeProvider.cs: Lazy init Default instance and
165         reconstruct it if CurrentCulture changes.
167 2007-07-05  Gert Driesen  <drieseng@users.sourceforge.net>
169         * CaseInsensitiveHashCodeProvider.cs: In default ctor, do not save
170         TextInfo if current culture is invariant. Remoted private ctor.
171         In Default, always construct new instance since the current culture
172         may change.
174 2007-06-08  Ankit Jain  <jankit@novell.com>
176         * ArrayList.cs (Shift): Clear the unused part of the array when
177         removing elements.
179 2006-12-29  Marek Safar  <marek.safar@gmail.com>
181         * BitArray.cs: Performance improvements.
183 2006-11-16  Miguel de Icaza  <miguel@novell.com>
185         * Hashtable.cs: Serialize EqualityComparer.
187 2006-08-16  Miguel de Icaza  <miguel@novell.com>
189         * Hashtable.cs (PutImpl): Do not access the table twice, only
190         once. 
191         
192         (TestPrime): optimize, take the sqrt out of the loop.
194 2006-08-08  Duncan Mak  <duncan@novell.com>
196         * ReadOnlyCollectionBase.cs (Count): Mark as virtual in
197         NET_2_0. Fixes #79033.
199 2006-04-26  Atsushi Enomoto  <atsushi@ximian.com>
201         * Comparer.cs : changed internal field from CultureInfo to
202           CompareInfo. This cosmetic change should fix bug #77701.
204 2006-03-28  Marek Safar  <marek.safar@seznam.cz>
206         * Stack.cs: Changed ctor to allocate only requested memory.
208 Tue Feb 28 14:16:25 CET 2006 Paolo Molaro <lupus@ximian.com>
210         * BitArray.cs: reintroduce optimization carelessly removed by
211         Robitaille.
213 2006-02-03  Sebastien Robitaille <sebastien.robitaille@croesus.com>
215         * BitArray.cs: Renamed members for interoperability with MS. 
217 Tue Jan 24 18:24:00 CET 2006 Paolo Molaro <lupus@ximian.com>
219         * BitArray.cs: optimize bit access by removing expensive
220         div/rem ops.
222 2006-01-04  Sebastien Pouliot  <sebastien@ximian.com>
224         * Hashtable.cs: Mark all inner classes as [Serializable] to match MS
225         behaviour. Fix bug #76300.
227 2005-12-19  Sebastien Pouliot  <sebastien@ximian.com>
229         * ArrayList.cs: Fix default capacity under 2.0 (and unit tests under 
230         MS 2.0).
232 2005-12-07  Sebastien Pouliot  <sebastien@ximian.com>
234         * SortedList.cs: Removed check for IComparable in ctor (fixed bug 
235         #76750). Removed unused private method. Added more useful info (the 
236         duplicate key) to an exception.
238 2005-12-06  Sebastien Pouliot  <sebastien@ximian.com>
240         * CaseInsensitiveHashCodeProvider: Serialization is now compatible 
241         with MS. Removes the last TODO for 1.1 in this namespace :-)
243 2005-12-05  Sebastien Pouliot  <sebastien@ximian.com>
245         * Comparer.cs: Added GetObjectData method to implement ISerializable.
247 2005-09-29  Miguel de Icaza  <miguel@novell.com>
249         * Add ComVisible(true) to all the classes that needed it.
251         * Removed documentation from DictionaryBase.cs and moved it to
252         Monodoc. 
254         * ArrayList.cs: Fixed signature for constructor, parameter names
255         are normative.
257         * CollectionBase.cs: Add a couple of missing methods. 
259 2005-09-01  Atsushi Enomoto  <atsushi@ximian.com>
261         * Hashtable.cs : SyncHashtable.GetEnumerator() returned keys instead
262           of entries (DictionaryEntry). Fixed bug #75790.
264 2005-09-01  Atsushi Enomoto  <atsushi@ximian.com>
266         * SortedList.cs : Even though the key/value pair being set are
267           identical to the existing one, it causes snapshot out of sync.
268           Fixed bug #59694.
270 2005-07-21  Lluis Sanchez Gual  <lluis@novell.com>
272         * CollectionBase.cs: Lazily create the inner list. MS.NET does
273         it and we need to do the same for the sake of serialization
274         interoperability. Fixes bug #75575. 
276 2005-07-17  Florian Gross  <flgr@ccan.de>
278         * ArrayList.cs: pass along index offset in RangedArrayList:ToArray.
279         Fixes bug #75545
281 2005-06-23  Ben Maurer  <bmaurer@ximian.com>
283         * Queue.cs: Use the enumerator rather than copy to in the
284         ctor. This makes us more compat with msft, for example, when
285         passing a bit array
287         * Stack.cs: ditto
289 2005-06-23  Martin Baulig  <martin@ximian.com>
291         * IKeyComparer.cs: Removed.
293 2005-06-12  David Waite  <dwaite@gmail.com>
295         * Hashtable.cs: make prime-related functions internal so generic
296         Dictionary can use them.
297         * IEqualityComparer.cs: add non-generic IEqualityComparer interface
299 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
301         * Hashtable.cs: Add some missing 2.0 attributes.
303 2005-05-26  Ben Maurer  <bmaurer@ximian.com>
305         * Queue.cs (grow): fix 61919.
307 2005-05-09  Atsushi Enomoto  <atsushi@ximian.com>
309         * Stack.cs : empty_stack.CopyTo(empty_array, 0) should be allowed.
311 2005-02-21  Zoltan Varga  <vargaz@freemail.hu>
313         * Hashtable.cs: Add net 2.0 ReliabilityContractAttributes.
315 2005-02-19  Kazuki Oikawa  <kazuki@panicode.com>
317         * SortedList.cs, Stack.cs: Reverse the order in the Equals calls.
319 2004-12-21  Ben Maurer  <bmaurer@ximian.com>
321         * Hashtable.cs (get_Item): duplicate Find here, as we can
322         specialize a few things. This gives me 7% back.
323         (Find) Use break rather than return -1. Saves a bit of code.
324         
325         * Hashtable.cs (GetHash): Avoid a method call. Also, don't store
326         the this.hcpRef in a variable. This will create another register
327         which must be pushed on the stack. It is better to just reference
328         the variable again. hcpRef.GetHashCode (key) is the slow path
329         anyways, so an extra variable reference here doesn't hurt
330         (KeyEquals): ditto.
332         This gives me a few % back in a raw benchmark.
334 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
336         * Hashtable.cs (Find): Some minor optimizations here.
337         
338         * Hashtable.cs: Remove GetImpl and inline it.
340         * Hashtable.cs (Find): Before calling KeyEquals, check to see if k
341         == key (ie, they are the same pointer). In many cases, this will
342         avoid two virtual calls. This gives me 1% on mcs bootstrap (!!!!)
344         * Hashtable.cs (Find): Make `i' a uint rather than an int. This
345         avoids having a long compare.
347 2004-12-16  Lluis Sanchez Gual  <lluis@novell.com>
349         * Hashtable.cs: Check for null serialization info in OnDeserialization.
350         A hashtable subclass can fully override the constructor, so
351         serializationInfo would be null in this case. Fixes bug #70698.
353 2004-12-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
355         * ArrayList.cs: don't initialize _items twice. Closes bug #70620.
357 2004-12-16  Lluis Sanchez Gual  <lluis@novell.com>
359         * Hashtable.cs: Add deserialized elements in OnDeserialization, since
360         when the serialization constructor is called, some of the elements
361         may not yet be fully deserialized. This fixes bug #70570.
363 2004-10-08  Raja R Harinath  <rharinath@novell.com>
365         * CaseInsensitiveHashCodeProvider.cs (GetHashCode): When culture
366         is not invariant, avoid an icall on every character.
368 2004-07-21  Geoff Norton <gnorton@customerdna.com>
370         * Hashtable.cs: lock the SyncRoot when Cloning a Synchronized hashtable to avoid
371           a snapshot out of sync error.
373 2004-07-21  Duncan Mak  <duncan@ximian.com>
375         * DictionaryBase.cs: Rename the dictionary field to hashtable,
376         which causes a serialization interop bug. Fixes bug #61721.
378 2004-06-18  Ben Maurer <bmaurer@ximian.com>
380         * IKeyComparer.cs: v2 class
382 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
384         * CaseInsensitiveComparer.cs: added TODO for serialization
385         * CaseInsensitiveHashCodeProvider.cs: added TODO for serialization
386         * SortedList.cs: added TODO for serialization
387         * Stack.cs: added TODO for serialization
389 2004-06-14  Sebastien Pouliot  <sebastien@ximian.com>
391         * Hashtable.cs: Compare index and length in CopyTo only when length > 0.
393 2004-06-14  Lluis Sanchez Gual  <lluis@ximian.com>
395         * ArrayList.cs: Avoid endless loop in Insert when the current size is 0.
397 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
399         * ReadOnlyCollectionBase.cs: Renamed internal variable to make serialization 
400           compatible with MS.NET.
402 2004-06-01  Sebastien Pouliot  <sebastien@ximian.com>
404         * SortedList.cs: Fixed case where the initial capacity was set to 0.
406 2004-05-31  Sebastien Pouliot  <sebastien@ximian.com>
408         * Hashtable.cs: Added ArgumentNullException in GetObjectData.
410 2004-05-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
412         * ChangeLog:
413         * Comparer.cs: reverted last 2 patches from Gert Driesen. Totally wrong.
414         I wonder why.
416 2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
418        * Compare.cs: ISerializable should only be implemented
419        for NET_1_1 profile
421 2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
423        * Compare.cs: Implemented ISerializable, fixes public API
425 2004-05-27  Sebastien Pouliot  <sebastien@ximian.com>
427         * Hashtable.cs: Cloned synchronized Hashtables are now synchronized.
428         * Queue.cs: Fixed case where we could still get Current after the last 
429         MoveNext. Fixed Count for Queue.Synchronize (Queue.Synchronize (q)).
430         * SortedList.cs: Added missing ICloneable support to internal 
431         enumerator. Added Capacity to the synchronized version of SortedList.
432         Setting Capacity to 0 returns it to it's default value (16).
434 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
436         * ArrayList.cs: Fixed possible integer overflows.
438 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
440         * Hashtable.cs: Renamed internal class to make serialization compatible
441           with MS.NET.
443 2004-05-10  Gert Driesen (drieseng@users.sourceforge.net)
444         * Hashtable.cs: marked EnumeratorMode private
445         * SortedList.cs: marked EnumeratorMode private
447 2004-05-01  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
449         * Comparer.cs: ensure culture is set to null , removed
450           static constructor, removed unneccesary checks
452 2004-05-01  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
454         * CaseInsensitiveComparer.cs: Fix the default constructor (needs to
455           set CurrentCulture, ensure culture is set to null for invariant case,
456           construct early
457         * Comparer.cs: Restyle, change lineendings
459 2004-05-01  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
461         * CaseInsensitiveHashCodeProvider.cs
462         * CaseInsensitiveComparer.cs: Change lineendings
463         * CaseInsensitiveComparer.cs: Restyle
465 2004-05-01  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
467         * BitArray.cs: Fix parameter names
468         * CaseInsensitiveHashCodeProvider.cs: Fix signature
469         * DictionaryEntry.cs: Fix parameter names
470         * Hashtable.cs: Fix signatures
471         * SortedList.cs: Fix signatures
473 2004-04-25  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
475         * CaseInsensitiveHashCodeProvider.cs: Fix the default constructor (needs to
476           set CurrentCulture, Add null check to other constructor, Call correct function
477           for invariant case, ensure culture is set to null for invariant case, removed
478           static constructor, made invariant version available as internal in .Net 1.0
480 2004-04-21  Lluis Sanchez Gual  <lluis@ximian.com>
482         * CaseInsensitiveHashCodeProvider.cs: If the culture is null, don't use
483           Char.ToLower(c,culture), since it does not accept null as culture.
485 2004-04-20  Lluis Sanchez Gual  <lluis@ximian.com>
487         * Queue.cs: Renamed internal membesr to match MS.NET (to allow serialization
488         interoperability). I also had to make some changes in the implementation:
489         I added a field _tail that points at the first free position in the array, and
490         changed the type of growFactor, which is now an int (its value is the old
491         growFactor * 100).
493 2004-04-19  Lluis Sanchez Gual  <lluis@ximian.com>
495         * Comparer.cs: Made constructor public.
497 2004-03-30  Lluis Sanchez Gual <lluis@ximian.com>
499         * CaseInsensitiveHashCodeProvider.cs: Use the CultureInfo of the calling
500         thread, not the one of the thread that created the instance.
501         * Comparer.cs: Added DefaultInvariant property and missing constructor.
502         Use the specified culture info to compare strings.
504 2004-03-30  Lluis Sanchez Gual <lluis@ximian.com>
506         * CaseInsensitiveHashCodeProvider.cs: Added support for CultureInfo.
507           Implemented property DefaultInvariant.
509 2004-03-29  Lluis Sanchez Gual <lluis@ximian.com>
511         * CollectionBase.cs: Renamed internal arraylist member to match MS.NET
512           (to allow serialization interoperability).
514 2004-03-18  David Sheldon <dave-mono@earth.li>
516   * Hashtable.cs: Serialise/Deserialise to two arrays of 
517    keys/values. This will match what MS.NET appears to be
518    doing.
520 2004-02-12  Jackson Harper  <jackson@ximian.com>
522         * SortedList.cs: Only .et 1.0 sets the capacity to a min of
523         initial size.
524         
525 2004-01-13  Lluis Sanchez Gual <lluis@ximian.com>
527         * Hashtable.cs: Added serialization support to SynchedHashtable. This
528         fixes bug #52741.
530 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
532         * Hashtable.cs: fix Clone. Closes bug #52740. Patch by Benjamin Jemlich
533         (pcgod@gmx.net).
535 2003-12-26 Ben Maurer  <bmaurer@users.sourceforge.net>
537         * ArrayList.cs: Add class `SimpleEnumerator' this handles the
538         .GetEnumerator We are able to remove fields by doing this, the
539         sizeof the simple version is 75% of that of the complex one, so we
540         get a pretty nice saving.
542 2003-12-23  Lluis Sanchez Gual <lluis@ximian.com>
544         * ArrayList.cs: Renamed private fields m_Count, m_Data and
545         m_StateChanges to _size, _items and _version, to make it compatible with
546         MS.NET (needed for remoting interoperability). This fixes bug #52438.
548 2003-12-01  Dick Porter  <dick@ximian.com>
550         * CaseInsensitiveComparer.cs: Construct the default comparers when
551         they're needed, to avoid a dependency loop with CultureInfo's
552         constructor.
554 2003-12-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
556         * Queue.cs: patch from Carlos Barcenilla.
557         public class Queue
558                 - method: ICollection.Clone()
559                 - Optimized. Removed unneeded instructions.
560                 - method: public static Queue Synchronized (Queue queue)
561                 - ArgumentNullException.ParamName must be "queue", not null.
562                 - method: public virtual void TrimToSize()
563                 - Must increment modCount.
565         private class SyncQueue
566                 - method: public override object Clone ()
567                 - Must return a synchronized (SyncStack) instance.
568                 - method: public override void TrimToSize ()
569                 - Not implemented.
571 2003-11-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
573         * IEnumerator.cs: Added missing attribute
575 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
577         * CaseInsensitiveComparer.cs: Add missing method.
579 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
581         * Stack.cs: Applied patch from Carlos A. Barcenilla to fix minor
582         bugs (#50755).
584 2003-11-03  Lluis Sanchez Gual <lluis@ximian.com>
586         * SortedList.cs: Added [Serializable] to Slot class. This fixes bug #50484.
588 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
590         * System.Collections/Hashtable.cs: patch from Carlos A.
591         Barcenilla (barce@frlp.utn.edu.ar) that includes some fixes for
592         Hashtable + NUnit2 tests.
594 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
596         * Queue.cs: nullify the array in Clear.
598 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
600         * Hashtable.cs: Remove empty static constructor since it prevents this
601         class from being beforefieldinit.
603 2003-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
605         * CaseInsensitiveHashCodeProvider.cs: small speed improvement.
607 2003-08-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
609         * Stack.cs: patch by JoergR@voelcker.com (Joerg Rosenkranz) that fixes
610         bug #47789.
612 2003-08-20  Duncan Mak  <duncan@ximian.com>
614         * Hashtable.cs (PutImpl): Fix my previous checkin, see details
615         posted on bug #47692.
617         I really hope I don't mess up this time, because, if I do again,
618         it will be really embarrassing.
620 2003-08-17  Duncan Mak  <duncan@ximian.com>
622         * Hashtable.cs (PutImpl): Patch from Luca Barbieri <lb@lb.ods.org>.
623         Currently Hashtable.PutImpl has an incorrect test which causes the
624         key chain search to terminate as soon as a free slot is found,
625         causing key duplication.
627         This fixes bug #47692.
629 2003-08-11  Duncan Mak  <duncan@ximian.com>
631         * DictionaryBase.cs: Applied patch from Carlos Barcenilla
632         (barce@frlp.utn.edu.ar).
633         
634         (Idictionary.Add): Added OnValidate, and undo the transaction if
635         OnInsertCompleteFails.
637         (Indexer set): MS Implementation does not call OnInsert and undoes
638         if OnSetComplete throws an exception
639         (Indexer get): return value is obtained after calling OnGet.
641         (IDictionary.Remove): Call to OnValidate added. If key does not
642         exists calls OnValidate, OnRemove and OnRemoveComplete.
644         (protected IDictionary Dictionary get): Should return itself, not
645         the inner hashtable.
647         This fixes bug #47460.
649 2003-08-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
651         * CollectionBase.cs: applied patch from Carlos Barcenilla
652         (barce@frlp.utn.edu.ar).
654 2003-08-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
656         * ArrayList.cs: added / so that gvim syntax highlight doesn't go crazy.
657         * CollectionBase.cs: fixed several bugs reported by Carlos Barcenilla
658         (barce@frlp.utn.edu.ar). Most of the patch is also his.
660 2003-07-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
662         * ArrayList.cs: fixed EnsureCapacity when m_Data.Length is 0.
664 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
666         * ArrayList.cs: Deployed ArrayList from Tum;  Fixed iterator to
667         allow nulls, and inline a few calls to make profiling more useful.
669 2003-07-24  Miguel de Icaza  <miguel@ximian.com>
671         * ArrayList.cs: Removed MonoTODO.
673 2003-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
675         * Hashtable.cs: made SynchedHashtable serializable. Fixes bug #45918.
676         Thanks to JoergR@voelcker.com (Joerg Rosenkranz).
678 2003-06-27  Duncan Mak  <duncan@ximian.com>
680         * Hashtable.cs: Patch from PAF@design.ru, GetEnumerator should be
681         returning DictionaryEntrys, instead of just the Key of the table.
683 2003-06-26  Lluis Sanchez Gual  <lluis@ximian.com>
685         * Hashtable.cs: Fixed bug when serializing and deserializing
686           a hashtable from which one element has been deleted. The Object instance
687           used as a removed marker is not detected as a such, since the
688           serializer creates a different instace.
690 2003-06-13  Herve Poussineau  <hpoussineau@fr.st>
692         * SortedList.cs: Can enumerate on DictionaryEntries, not only on
693         keys on values. Enumerate by default on DictionaryEntries.
695 2003-06-12  Duncan Mak  <duncan@ximian.com>
697         * Hashtable.cs (constructor):
698         if loadFactor equals Single.NaN, then throw an
699         ArgumentOutOfRangeException.
701         if we set capacity to be too big (ie. capacity / loadFactor is
702         greater than Int32.MaxValue), then we throw an ArgumentException.
704 2003-06-11  Duncan Mak  <duncan@ximian.com>
706         * SortedList.cs: Oi! What a mess.
708         If the list was constructed using the null-param constructor, and
709         it tries to set it to a size lower than the default, let it do so.
711         If the list was constructed with a specific size, and it tries to
712         set it to a size lower than the specified size, set it to the
713         default size.
715         (IndexOfValue): Clean up the code somewhat, make it allow for
716         values to be null.
718 2003-06-08  Ben Maurer <bmaurer@users.sourceforge.net>
719         * ArrayList.cs, Hashtable.cs, SortedList.cs: Enumerator fixes, error
720         checking
722 2003-06-07  Ben Maurer <bmaurer@users.sourceforge.net>
723         * Stack.cs: Contains (null) works correctly. We never have the
724         array sized less than 16, so that the doubling logic works no
725         matter what. The enumerator is IClonable, like in ms. The
726         Enumerator correctly throws an exception if Current is called
727         before the enumerator is started. We now pass all the Rotor tests
728         for this file!
730 2003-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
732         * Stack.cs: fixed Clone ().
734 2003-06-04  Ben Maurer <bmaurer@users.sourceforge.net>
735         * DictionaryEntry.cs: Throw exception if key == null. Fixes Rotor
736         failures
738 2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
740         * ArrayList.cs: nullify the array in Clear ().
741         * Queue.cs: nullify the array in Dequeue ().
742         * Stack.cs: nullify the array in Pop ().
744 2003-06-02  Ben Maurer <bmaurer@users.sourceforge.net>
745         * Queue.cs: Added argument checking in constructors according to
746         specs. Also changed default size to 32 as required by the specs.
748 2003-05-31  Ben Maurer <bmaurer@users.sourceforge.net>
749         * BitArray.cs: Rewrote, as it was failing most of the Rotor
750         tests. It now passes them 100%. Also fixes bug #43667.
752 2003-05-03 Ben Maurer <bmaurer@users.sourceforge.net>
753 * ArrayList.cs
754         Made ArrayList.GetRange () make a wrapper around the array list, like Microsoft does. Fixes bug #39724.
756 2003-05-03 Ben Maurer <bmaurer@users.sourceforge.net>
757 * ArrayList.cs
758         Added methods to support IList wrappers
760 2003-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
762         * ArrayList.cs: patch from bernard@ugsolutions.com (Bernie Solomon)
763         that fixes bug #41684.
765 2003-04-15 Eduardo Garcia Cebollero <kiwnix@yahoo.es>
767         * CaseInsensitiveComparerTest.cs: Fixed Compare Method (now works
768         like MS.NET) and implemented the
769         CaseInsensitiveComparerTest(culture) constructor.
771 2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
773         * Queue.cs: fixed bug #39046.
775 2003-02-15  Pedro Martnez Juli  <yoros@wanadoo.es>
777         * Hashtable.cs: Make hashtable serializable (at least with binary
778         formatter). This process was started by the Hashtable maintainer.
780 2003-02-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
782         * ArrayList.cs: fixed setSize (!).
784 2003-01-31  Zoltan Varga  <vargaz@freemail.hu>
786         * ArrayList.cs (RemoveAt): duplicated the the code from RemoveRange
787         here, since RemoveAt raises a different exception than RemoveRange
788         when the index is out-of-range. Fixes the ArrayList unit tests.
790         * ArrayList.cs (RemoveRange): fixed indentation.
792 2003-01-12  Varga Zoltan <vargaz@freemail.hu>
794         * ArrayList.cs (RemoveRange): Patch for allowing zero-size
795         removal at the end of a list. It also cleans up the argument
796         checking code so the raised exceptions have the same message as
797         under MS.NET.
799 2003-01-10  Duncan Mak  <duncan@ximian.com>
801         * ArrayList.cs (Insert): Patch from Zoltan
802         (Zoltan.2.Varga@nokia.com).
804 2002-10-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
806         * Hashtable.cs: add the key to the error message when
807         'key duplication'.
809 2002-10-15  Vladimir Vukicevic  <vladimir@pobox.com>
811         * Queue.cs: update new capacity in grow(), preventing queue from
812         constantly looping over old elements in Dequeue(). Also use
813         capacity instead of contents.Length in Enqueue().
815 2002-09-24  Nick Drochak  <ndrochak@gol.com>
817         * ArrayList.cs: Make enumerator throw exception if the ArrayList is
818         mutated (Insert, Delete, etc.). Also, fix bug in InsertRange() when
819         this was passed as parameter.
821 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
823         * ArrayList.cs: fixed bug #29658.
825 2002-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
827         * ArrayList.cs:
828         * BitArray.cs:
829         * CaseInsensitiveComparer.cs:
830         * CaseInsensitiveHashCodeProvider.cs:
831         * IEnumerable.cs:
832         * Queue.cs: misc. fixes based on class status page.
834 2002-07-22  Tim Coleman  <tim@timcoleman.com>
835         * CaseInsensitiveHashCodeProvider.cs: Added missing constructor
836                 which was breaking System.Web build on linux
838 2002-07-05  Sergey Chaban <serge@wildwestsoftware.com>
840         * SortedList.cs: Implemented thread-safe wrapper. Changed some
841         args to camelCase.
843 2002-07-02  Nick Drochak  <ndrochak@gol.com>
845         * SortedList.cs: Constructors should use the capacity given regardless 
846         how small. After a Clear() the Capacit should be 16. Since a Dictionary
847         might be used in the constructor, make sure we trap exceptions thrown
848         by the Comparer, like in Add().
850 2002-06-30  Nick Drochak  <ndrochak@gol.com>
852         * SortedList.cs: Many fixed. A lot of checking for null and throwing
853         exceptions.  A few logic bugs fixed as well
855 2002-06-25   Nick Drochak  <ndrochak@gol.com>
857         * Queue.cs (CopyTo): Fix logic for copying the circular array.
858         (Enqueue): Use actual length of array to determine when to grow
859         (QueueEnumerator) Fixed Current to use array length, not capacity, and
860         fixed off-by-one errror in MoveNext().
862 Tue Jun 4 13:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
864         * ArrayList.cs: fixed RemoveAt() implementation.
866 2002-05-27  Nick Drochak  <ndrochak@gol.com>
868         * ArrayList.cs (LastIndexOf): Return -1 if searching for null, also
869         fix check of parameters sent to make sure we don't search beyond the
870         beginning of the list.
871         (ListWrapper): Throw exception if called with null.
872         We now pass all unit tests.
874 2002-05-23  Duncan Mak  <duncan@ximian.com>
876         * ArrayList.cs (Wrapper): Preliminary implementation of
877         ArrayList.Wrapper (IList).
879 2002-05-22  Martin Baulig  <martin@gnome.org>
881         * ArrayList.cs: Made count, capacity and dataArray the first three
882         fields in the class.  They're read by the reflection library.
884 2002-05-21  Lawrence Pit  <loz@cable.a2000.nl>
886         * ArrayList.cs: Fixed bug where a capacity of 0 could be reached, 
887         thereby causing problems when trying to add elements.
889 2002-05-06  Duncan Mak  <duncan@ximian.com>
891         * Queue.cs (TrimToSize): Implemented.
892         
893 2002-05-05  Nick Drochak  <ndrochak@gol.com>
895         * ArrayList.cs: Throw RankException when constructing from a 
896         multi-dimensional array. Confirmed behavior from MS.NET
898 Thu May 2 15:18:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
900         * ArrayList.cs: make mcs compile again: it's allowed to
901         call arraylist.CopyTo(array, 0) when the length of the array
902         is also 0.
904 Wed May 1 17:05:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
906         * SortedList.cs: fix RemoveAt () to use the correct length in
907         Array.Copy.
909 2002-05-01  Nick Drochak  <ndrochak@gol.com>
911         * ArrayList.cs (Add & AddRange) : Throw exceptions where needed.
913 2002/05/01  Nick Drochak <ndrochak@gol.com>
915         * ArrayList.cs (CopyTo) : Check parameters and throw exceptions
916         where needed.
918 2002/04/30  Nick Drochak <ndrochak@gol.com>
920         * ArrayList.cs (Clear) : Throw exception if ReadOnly or FixedSize.
921                 (InsertRange) : Implement.
922                 (SetRange) : Implement.
924 2002-04-30  Nick Drochak  <ndrochak@gol.com>
926         * ArrayList.cs (TrimToSize) : Implement.
928 2002-04-28  Duncan Mak  <duncan@ximian.com>
930         * ArrayList.cs (InsertRange): 
931         (SetRange):
932         (Remove):
933         (TrimToSize): Throw exceptions where needed.
935 2002-04-29  Nick Drochak  <ndrochak@gol.com>
937         * Hashtable.cs (CopyTo): Throw exceptions where needed.
939 2002-04-28  Duncan Mak  <duncan@ximian.com>
941         * ArrayList.cs (ReadOnly):
942         (IList.ReadOnly): Implemented.
944         (Synchronized):
945         (IList.Synchronized): Implemented.
947         (ixedSize):
948         (IList.FixedSize): Implemented.
950 2002-03-24  Duncan Mak  <duncan@ximian.com>
952         * SortedList.cs (Synchronized): Stubbed out a missing method
953         pointed out by Jakk Simm's test suite.
955 2002-03-14  Nick Drochak  <ndrochak@gol.com>
957         * ArrayList.cs (FixedSize(ArrayList)): should return an ArrayList. The
958         other FixedSize() methods returns an IList.
960 2002-03-13  Duncan Mak  <duncan@ximian.com>
962         * ArrayList.cs (FixedSize): Changed the return type to IList if
963         the argument is an IList.
964         (Synchronized): Ditto here.
966 2002-03-08  Sergey Chaban <serge@wildwestsoftware.com>
968         * Hashtable.cs: Fixed ToPrime () bug. Removed ALLOC_GRAIN.
969         Removed unused code from static constructor.
970         GetObjectData () - Version is the same as modificationCount.
972 2002-02-20  Nick Drochak  <ndrochak@gol.com>
974         * ArrayList.cs: Add MonoTODO's where necessary. Fix bugs discovered
975         by Bucky's tests. Implement a couple of things that were left undone.
977 Mon Feb 11 19:49:25 CET 2002 Paolo Molaro <lupus@ximian.com>
979         * ArrayList.cs: Dick's fix to contructor.
981 2002-02-07  Duncan Mak  <duncan@ximian.com>
983         * Hashtable.cs: Implemented parts of the ISerializable
984         interface. GetObjectData () is good, but serialization constructor
985         needs some more love.
987 Sat Jan 5 15:56:54 CET 2002 Paolo Molaro <lupus@ximian.com>
989         * Hashtable.cs: the IDictionaryEnumerator returns DictionaryEntries.
991 2002-01-04  Ravi Pratap  <ravi@ximian.com>
993         * Correct name to MonoTODO everywhere.
995 2002-01-04  Ravi Pratap  <ravi@ximian.com>
997         * ArrayList.cs : Setting an index does not implicitly
998         extend the arraylist : remove FIXME.
1000         Decorate incomplete elements with the TODO attribute.
1002         * BitArray.cs : Insert TODO attributes where appropriate.
1004         * CaseInsensitiveHashcodeProvider.cs: Ditto.
1006         * Hashtable.cs, SortedList.cs : Ditto.
1007         
1008 Thu Dec 13 20:17:08 CET 2001 Paolo Molaro <lupus@ximian.com>
1010         * ArrayList.cs: implemented AddRange(), CopyTo().
1012 2001-11-19  Miguel de Icaza  <miguel@ximian.com>
1014         * DictionaryBase.cs: Implemented.
1016 Wed Nov 14 16:45:49 CET 2001 Paolo Molaro <lupus@ximian.com>
1018         * ArrayList.cs: implement ArrayListEnumerator.
1019         * Hashtable.cs: hardcode the prime number table.
1021 2001-11-06 Nick Drochak <ndrochak@gol.com>
1022         * Queue.cs: Fixes from Ricardardo.  QueueTest also updated.
1024 2001-11-04 Nick Drochak <ndrochak@gol.com>
1025         * Queue.cs: Fixed small syntax errors that were preventing the compile.
1026         I changed the build file to include Queue.cs as well.
1028 2001-11-04 Nick Drochak <ndrochak@gol.com>
1029         * ArrayList.cs: Fixed "off by one" error when shifting left the array when
1030         items are removed.
1032         * CollectionBase.cs: Added OnValidate(), OnRemove() and OnRemoveComplete()
1033         hook methods to the RemoveAt() method.
1035 2001-11-04 Nick Drochak <ndrochak@gol.com>
1036         * ArrayList.cs: Added private enumerator class and make GetEnumerator()
1037         methods return an instance of it.
1039 Tue Sep 25 18:52:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
1041         * ArrayList.cs: fix Insert () to check capacity, not count.
1043 Tue Sep 25 16:54:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
1045         * DictionaryEntry.cs: added.
1047 2001-08-10  Dietmar Maurer  <dietmar@ximian.com>
1049         * common.src: removed duplicate entries
1051 2001-08-08 Nick Drochak <ndrochak@gol.com>
1053          * ReadOnlyCollectionBase.cs: Initialized private member.
1054          * CollectionBase.cs: Initialized private member.
1055          * common.src : Added ReadOnlyCollectionBase.cs and CollectionBase.cs
1056          * /mcs/class/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
1057          * /mcs/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
1059 2001-08-08 Nick Drochak <nick@jobdragon.com>
1061          * CollectionBase.cs: Add
1062          * ReadOnlyCollectionBase.cs: Add
1063          * CollectionBaseTest.cs: Add
1064          * ReadOnlyCollectionBaseTest.cs: Add
1066 2001-07-31 Garrett Rooney <rooneg@electricjellyfish.net>
1068         * StackTest.cs: Add Test case for System.Collections.Stack.  
1069         Contributed by Chris Hynes <chrish@assistedsolutions.com>
1071 2001-07-30 Garrett Rooney <rooneg@electricjellyfish.net>
1073         * Stack.cs: Clone() doesn't need to check if it's synchronized, since 
1074         we override it in SyncStack anyway...  
1076         * Stack.cs: Pop() now shrinks the array if we drop below 1/4 full, to 
1077         avoid using massive amounts of memory that are not necessary.  We only 
1078         drop to half the current size, which I hope will avoid the 'ping-pong' 
1079         effect.
1081         * Stack.cs: SyncStack.IsReadOnly should return stack.IsReadOnly 
1082         instead of just returning false, since we may have a ReadOnly wrapper 
1083         in the future (although i can't imagine why).  Thanks to David 
1084         Menestrina <dmenest@yahoo.com> for pointing this out.
1086 2001-07-23  Sergey Chaban <serge@wildwestsoftware.com>
1088         *  Hashtable.cs: Fixed bug in Clear(), the Count wasn't zeroed.
1089            From now, Clear() increases modification count.
1090            Fixed HCP bug in GetHash(object) - hcp.GetHashCode() was used
1091            instead of hcp.GetHashCode(key). This was resulted in the
1092            insanely long lookup times when HashCodeProvider was used to
1093            construct Hashtable. Added thread-safe wrapper.
1095 2001-07-16  David Menestrina <dmenest@yahoo.com>
1097          * BitArray.cs: Add
1098          * BitArrayTest.cs: Add
1100 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
1102         * IDictionary.cs (Collections): IDictionary implements ICollection
1103         as well.  Thanks Sergey!
1105 2001-07-18  Garrett Rooney  <rooneg@electricjellyfish.net>
1107         * Stack.cs Removed unnecessary locking from many methods of 
1108         SyncStack, removed SyncEnumerator because it was unnecessary, 
1109         added a modCount member to Stack and Stack.Enumerator, to 
1110         ensure that the Stack has not been modified out form under the 
1111         Enumerator, and changed the Enumerator to use a reference to the 
1112         stack rather than copying over the contents array.
1114 2001-07-17  David Menestrina  <dmenest@yahoo.com>
1116         * Added implementation of BitArray.
1118 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
1120         * Hashtable.cs: Removed call to d.Count in the Hashtable
1121         constructor that takes an IDictionary as IDictionary does not
1122         provide a Count field.
1124 2001-07-15  Sean MacIsaac  <macisaac@ximian.com>
1126         * IDictionary.cs: Clear was clear.
1128 2001-07-13  Miguel de Icaza  <miguel@ximian.com>
1130         * All files: Renamespace things to System.
1132 2001-07-05  Vladimir Vukicevic  <vladimir@ximian.com>
1134         * ArrayList.cs: initial checkin and implementation
1136         * ICollection.cs, IComprarer.cs, IDictionary.cs,
1137           IDictionaryEnumerator.cs, IEnumerable.cs, IHashCodeProvider.cs,
1138           IList.cs: initial checkin