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