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