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