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