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