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