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