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