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