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