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