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