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