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