1 2008-05-08 Robert Jordan <robertj@gmx.net>
3 * DictionaryEntry.cs: Rename fields for serialization
4 compatibility with MS. Accept null keys on 2.0 profile.
7 2008-04-13 Jb Evain <jbevain@novell.com>
9 * ArrayList.cs, BitArray.cs, CaseInsensitiveComparer.cs
10 CaseInsensitiveHashCodeProvider.cs, CollectionBase.cs,
11 Comparer.cs, IHashCodeProvider.cs, Hashtable.cs,
12 Queue.cs, Stack.cs: use the INSIDE_CORLIB pattern to
13 internalize code that is used outside the corlib.
14 Merged from the Moonlight 2 branch.
16 2008-04-02 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
20 * IEqualityComparer.cs
23 * Stack.cs: Fix parameter names
25 2008-03-24 Gert Driesen <drieseng@users.sourceforge.net>
27 * DictionaryBase.cs: Restore previous behavior of indexer for the
28 1.0 profile. On 2.0 profile, do nothing in IDictionary.Remove if
29 the key is not present in the hashtable. On 2.0 profile, we also need
30 to add entry back to hashtable when an exception is thrown in
33 2008-03-21 Sebastien Pouliot <sebastien@ximian.com>
35 * DictionaryBase.cs: Fix getter on IDictionary.this to avoid two
36 access to the hashtable and to behave more closely to MS
37 implementation (see new unit tests).
39 2007-11-06 Jb Evain <jbevain@novell.com>
41 * Hashtable.cs: Don't compare user keys against the special removed
44 2007-11-05 Sebastien Pouliot <sebastien@ximian.com>
46 * Queue.cs: Avoid IndexOutOfRangeException after TrimToSize. Patch by
47 Benjamin Lutz. Fix #321657.
49 2007-10-25 Zoltan Varga <vargaz@gmail.com>
51 * Hashtable.cs: Put the hash values into a separate array to help the GC. Fixes
54 2007-10-23 Robert Jordan <robertj@gmx.net>
56 * SortedList.cs: Mark List|{Values|Keys} as serializable.
59 2007-08-25 Zoltan Varga <vargaz@gmail.com>
61 * ArrayList.cs: Fix overflows in BinarySearch and qsort.
63 2007-08-08 Atsushi Enomoto <atsushi@ximian.com>
65 * ReadOnlyCollectionBase.cs CollectionBase.cs :
66 cosmetic 2.0 API fixes.
68 2007-07-19 Juraj Skripsky <js@hotfeet.ch>
70 * ArrayList.cs (ArrayList.Adapter): If the given list already is an
71 ArrayList, just return it directly.
73 2007-07-05 Gert Driesen <drieseng@users.sourceforge.net>
75 * CaseInsensitiveHashCodeProvider.cs: Lazy init Default instance and
76 reconstruct it if CurrentCulture changes.
78 2007-07-05 Gert Driesen <drieseng@users.sourceforge.net>
80 * CaseInsensitiveHashCodeProvider.cs: In default ctor, do not save
81 TextInfo if current culture is invariant. Remoted private ctor.
82 In Default, always construct new instance since the current culture
85 2007-06-08 Ankit Jain <jankit@novell.com>
87 * ArrayList.cs (Shift): Clear the unused part of the array when
90 2006-12-29 Marek Safar <marek.safar@gmail.com>
92 * BitArray.cs: Performance improvements.
94 2006-11-16 Miguel de Icaza <miguel@novell.com>
96 * Hashtable.cs: Serialize EqualityComparer.
98 2006-08-16 Miguel de Icaza <miguel@novell.com>
100 * Hashtable.cs (PutImpl): Do not access the table twice, only
103 (TestPrime): optimize, take the sqrt out of the loop.
105 2006-08-08 Duncan Mak <duncan@novell.com>
107 * ReadOnlyCollectionBase.cs (Count): Mark as virtual in
108 NET_2_0. Fixes #79033.
110 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
112 * Comparer.cs : changed internal field from CultureInfo to
113 CompareInfo. This cosmetic change should fix bug #77701.
115 2006-03-28 Marek Safar <marek.safar@seznam.cz>
117 * Stack.cs: Changed ctor to allocate only requested memory.
119 Tue Feb 28 14:16:25 CET 2006 Paolo Molaro <lupus@ximian.com>
121 * BitArray.cs: reintroduce optimization carelessly removed by
124 2006-02-03 Sebastien Robitaille <sebastien.robitaille@croesus.com>
126 * BitArray.cs: Renamed members for interoperability with MS.
128 Tue Jan 24 18:24:00 CET 2006 Paolo Molaro <lupus@ximian.com>
130 * BitArray.cs: optimize bit access by removing expensive
133 2006-01-04 Sebastien Pouliot <sebastien@ximian.com>
135 * Hashtable.cs: Mark all inner classes as [Serializable] to match MS
136 behaviour. Fix bug #76300.
138 2005-12-19 Sebastien Pouliot <sebastien@ximian.com>
140 * ArrayList.cs: Fix default capacity under 2.0 (and unit tests under
143 2005-12-07 Sebastien Pouliot <sebastien@ximian.com>
145 * SortedList.cs: Removed check for IComparable in ctor (fixed bug
146 #76750). Removed unused private method. Added more useful info (the
147 duplicate key) to an exception.
149 2005-12-06 Sebastien Pouliot <sebastien@ximian.com>
151 * CaseInsensitiveHashCodeProvider: Serialization is now compatible
152 with MS. Removes the last TODO for 1.1 in this namespace :-)
154 2005-12-05 Sebastien Pouliot <sebastien@ximian.com>
156 * Comparer.cs: Added GetObjectData method to implement ISerializable.
158 2005-09-29 Miguel de Icaza <miguel@novell.com>
160 * Add ComVisible(true) to all the classes that needed it.
162 * Removed documentation from DictionaryBase.cs and moved it to
165 * ArrayList.cs: Fixed signature for constructor, parameter names
168 * CollectionBase.cs: Add a couple of missing methods.
170 2005-09-01 Atsushi Enomoto <atsushi@ximian.com>
172 * Hashtable.cs : SyncHashtable.GetEnumerator() returned keys instead
173 of entries (DictionaryEntry). Fixed bug #75790.
175 2005-09-01 Atsushi Enomoto <atsushi@ximian.com>
177 * SortedList.cs : Even though the key/value pair being set are
178 identical to the existing one, it causes snapshot out of sync.
181 2005-07-21 Lluis Sanchez Gual <lluis@novell.com>
183 * CollectionBase.cs: Lazily create the inner list. MS.NET does
184 it and we need to do the same for the sake of serialization
185 interoperability. Fixes bug #75575.
187 2005-07-17 Florian Gross <flgr@ccan.de>
189 * ArrayList.cs: pass along index offset in RangedArrayList:ToArray.
192 2005-06-23 Ben Maurer <bmaurer@ximian.com>
194 * Queue.cs: Use the enumerator rather than copy to in the
195 ctor. This makes us more compat with msft, for example, when
200 2005-06-23 Martin Baulig <martin@ximian.com>
202 * IKeyComparer.cs: Removed.
204 2005-06-12 David Waite <dwaite@gmail.com>
206 * Hashtable.cs: make prime-related functions internal so generic
207 Dictionary can use them.
208 * IEqualityComparer.cs: add non-generic IEqualityComparer interface
210 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
212 * Hashtable.cs: Add some missing 2.0 attributes.
214 2005-05-26 Ben Maurer <bmaurer@ximian.com>
216 * Queue.cs (grow): fix 61919.
218 2005-05-09 Atsushi Enomoto <atsushi@ximian.com>
220 * Stack.cs : empty_stack.CopyTo(empty_array, 0) should be allowed.
222 2005-02-21 Zoltan Varga <vargaz@freemail.hu>
224 * Hashtable.cs: Add net 2.0 ReliabilityContractAttributes.
226 2005-02-19 Kazuki Oikawa <kazuki@panicode.com>
228 * SortedList.cs, Stack.cs: Reverse the order in the Equals calls.
230 2004-12-21 Ben Maurer <bmaurer@ximian.com>
232 * Hashtable.cs (get_Item): duplicate Find here, as we can
233 specialize a few things. This gives me 7% back.
234 (Find) Use break rather than return -1. Saves a bit of code.
236 * Hashtable.cs (GetHash): Avoid a method call. Also, don't store
237 the this.hcpRef in a variable. This will create another register
238 which must be pushed on the stack. It is better to just reference
239 the variable again. hcpRef.GetHashCode (key) is the slow path
240 anyways, so an extra variable reference here doesn't hurt
243 This gives me a few % back in a raw benchmark.
245 2004-12-20 Ben Maurer <bmaurer@ximian.com>
247 * Hashtable.cs (Find): Some minor optimizations here.
249 * Hashtable.cs: Remove GetImpl and inline it.
251 * Hashtable.cs (Find): Before calling KeyEquals, check to see if k
252 == key (ie, they are the same pointer). In many cases, this will
253 avoid two virtual calls. This gives me 1% on mcs bootstrap (!!!!)
255 * Hashtable.cs (Find): Make `i' a uint rather than an int. This
256 avoids having a long compare.
258 2004-12-16 Lluis Sanchez Gual <lluis@novell.com>
260 * Hashtable.cs: Check for null serialization info in OnDeserialization.
261 A hashtable subclass can fully override the constructor, so
262 serializationInfo would be null in this case. Fixes bug #70698.
264 2004-12-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
266 * ArrayList.cs: don't initialize _items twice. Closes bug #70620.
268 2004-12-16 Lluis Sanchez Gual <lluis@novell.com>
270 * Hashtable.cs: Add deserialized elements in OnDeserialization, since
271 when the serialization constructor is called, some of the elements
272 may not yet be fully deserialized. This fixes bug #70570.
274 2004-10-08 Raja R Harinath <rharinath@novell.com>
276 * CaseInsensitiveHashCodeProvider.cs (GetHashCode): When culture
277 is not invariant, avoid an icall on every character.
279 2004-07-21 Geoff Norton <gnorton@customerdna.com>
281 * Hashtable.cs: lock the SyncRoot when Cloning a Synchronized hashtable to avoid
282 a snapshot out of sync error.
284 2004-07-21 Duncan Mak <duncan@ximian.com>
286 * DictionaryBase.cs: Rename the dictionary field to hashtable,
287 which causes a serialization interop bug. Fixes bug #61721.
289 2004-06-18 Ben Maurer <bmaurer@ximian.com>
291 * IKeyComparer.cs: v2 class
293 2004-06-15 Gert Driesen <drieseng@users.sourceforge.net>
295 * CaseInsensitiveComparer.cs: added TODO for serialization
296 * CaseInsensitiveHashCodeProvider.cs: added TODO for serialization
297 * SortedList.cs: added TODO for serialization
298 * Stack.cs: added TODO for serialization
300 2004-06-14 Sebastien Pouliot <sebastien@ximian.com>
302 * Hashtable.cs: Compare index and length in CopyTo only when length > 0.
304 2004-06-14 Lluis Sanchez Gual <lluis@ximian.com>
306 * ArrayList.cs: Avoid endless loop in Insert when the current size is 0.
308 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
310 * ReadOnlyCollectionBase.cs: Renamed internal variable to make serialization
311 compatible with MS.NET.
313 2004-06-01 Sebastien Pouliot <sebastien@ximian.com>
315 * SortedList.cs: Fixed case where the initial capacity was set to 0.
317 2004-05-31 Sebastien Pouliot <sebastien@ximian.com>
319 * Hashtable.cs: Added ArgumentNullException in GetObjectData.
321 2004-05-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
324 * Comparer.cs: reverted last 2 patches from Gert Driesen. Totally wrong.
327 2004-05-29 Gert Driesen (drieseng@users.sourceforge.net)
329 * Compare.cs: ISerializable should only be implemented
332 2004-05-29 Gert Driesen (drieseng@users.sourceforge.net)
334 * Compare.cs: Implemented ISerializable, fixes public API
336 2004-05-27 Sebastien Pouliot <sebastien@ximian.com>
338 * Hashtable.cs: Cloned synchronized Hashtables are now synchronized.
339 * Queue.cs: Fixed case where we could still get Current after the last
340 MoveNext. Fixed Count for Queue.Synchronize (Queue.Synchronize (q)).
341 * SortedList.cs: Added missing ICloneable support to internal
342 enumerator. Added Capacity to the synchronized version of SortedList.
343 Setting Capacity to 0 returns it to it's default value (16).
345 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
347 * ArrayList.cs: Fixed possible integer overflows.
349 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
351 * Hashtable.cs: Renamed internal class to make serialization compatible
354 2004-05-10 Gert Driesen (drieseng@users.sourceforge.net)
355 * Hashtable.cs: marked EnumeratorMode private
356 * SortedList.cs: marked EnumeratorMode private
358 2004-05-01 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
360 * Comparer.cs: ensure culture is set to null , removed
361 static constructor, removed unneccesary checks
363 2004-05-01 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
365 * CaseInsensitiveComparer.cs: Fix the default constructor (needs to
366 set CurrentCulture, ensure culture is set to null for invariant case,
368 * Comparer.cs: Restyle, change lineendings
370 2004-05-01 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
372 * CaseInsensitiveHashCodeProvider.cs
373 * CaseInsensitiveComparer.cs: Change lineendings
374 * CaseInsensitiveComparer.cs: Restyle
376 2004-05-01 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
378 * BitArray.cs: Fix parameter names
379 * CaseInsensitiveHashCodeProvider.cs: Fix signature
380 * DictionaryEntry.cs: Fix parameter names
381 * Hashtable.cs: Fix signatures
382 * SortedList.cs: Fix signatures
384 2004-04-25 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
386 * CaseInsensitiveHashCodeProvider.cs: Fix the default constructor (needs to
387 set CurrentCulture, Add null check to other constructor, Call correct function
388 for invariant case, ensure culture is set to null for invariant case, removed
389 static constructor, made invariant version available as internal in .Net 1.0
391 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
393 * CaseInsensitiveHashCodeProvider.cs: If the culture is null, don't use
394 Char.ToLower(c,culture), since it does not accept null as culture.
396 2004-04-20 Lluis Sanchez Gual <lluis@ximian.com>
398 * Queue.cs: Renamed internal membesr to match MS.NET (to allow serialization
399 interoperability). I also had to make some changes in the implementation:
400 I added a field _tail that points at the first free position in the array, and
401 changed the type of growFactor, which is now an int (its value is the old
404 2004-04-19 Lluis Sanchez Gual <lluis@ximian.com>
406 * Comparer.cs: Made constructor public.
408 2004-03-30 Lluis Sanchez Gual <lluis@ximian.com>
410 * CaseInsensitiveHashCodeProvider.cs: Use the CultureInfo of the calling
411 thread, not the one of the thread that created the instance.
412 * Comparer.cs: Added DefaultInvariant property and missing constructor.
413 Use the specified culture info to compare strings.
415 2004-03-30 Lluis Sanchez Gual <lluis@ximian.com>
417 * CaseInsensitiveHashCodeProvider.cs: Added support for CultureInfo.
418 Implemented property DefaultInvariant.
420 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
422 * CollectionBase.cs: Renamed internal arraylist member to match MS.NET
423 (to allow serialization interoperability).
425 2004-03-18 David Sheldon <dave-mono@earth.li>
427 * Hashtable.cs: Serialise/Deserialise to two arrays of
428 keys/values. This will match what MS.NET appears to be
431 2004-02-12 Jackson Harper <jackson@ximian.com>
433 * SortedList.cs: Only .et 1.0 sets the capacity to a min of
436 2004-01-13 Lluis Sanchez Gual <lluis@ximian.com>
438 * Hashtable.cs: Added serialization support to SynchedHashtable. This
441 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
443 * Hashtable.cs: fix Clone. Closes bug #52740. Patch by Benjamin Jemlich
446 2003-12-26 Ben Maurer <bmaurer@users.sourceforge.net>
448 * ArrayList.cs: Add class `SimpleEnumerator' this handles the
449 .GetEnumerator We are able to remove fields by doing this, the
450 sizeof the simple version is 75% of that of the complex one, so we
451 get a pretty nice saving.
453 2003-12-23 Lluis Sanchez Gual <lluis@ximian.com>
455 * ArrayList.cs: Renamed private fields m_Count, m_Data and
456 m_StateChanges to _size, _items and _version, to make it compatible with
457 MS.NET (needed for remoting interoperability). This fixes bug #52438.
459 2003-12-01 Dick Porter <dick@ximian.com>
461 * CaseInsensitiveComparer.cs: Construct the default comparers when
462 they're needed, to avoid a dependency loop with CultureInfo's
465 2003-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
467 * Queue.cs: patch from Carlos Barcenilla.
469 - method: ICollection.Clone()
470 - Optimized. Removed unneeded instructions.
471 - method: public static Queue Synchronized (Queue queue)
472 - ArgumentNullException.ParamName must be "queue", not null.
473 - method: public virtual void TrimToSize()
474 - Must increment modCount.
476 private class SyncQueue
477 - method: public override object Clone ()
478 - Must return a synchronized (SyncStack) instance.
479 - method: public override void TrimToSize ()
482 2003-11-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
484 * IEnumerator.cs: Added missing attribute
486 2003-11-12 Miguel de Icaza <miguel@ximian.com>
488 * CaseInsensitiveComparer.cs: Add missing method.
490 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
492 * Stack.cs: Applied patch from Carlos A. Barcenilla to fix minor
495 2003-11-03 Lluis Sanchez Gual <lluis@ximian.com>
497 * SortedList.cs: Added [Serializable] to Slot class. This fixes bug #50484.
499 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
501 * System.Collections/Hashtable.cs: patch from Carlos A.
502 Barcenilla (barce@frlp.utn.edu.ar) that includes some fixes for
503 Hashtable + NUnit2 tests.
505 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
507 * Queue.cs: nullify the array in Clear.
509 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
511 * Hashtable.cs: Remove empty static constructor since it prevents this
512 class from being beforefieldinit.
514 2003-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
516 * CaseInsensitiveHashCodeProvider.cs: small speed improvement.
518 2003-08-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
520 * Stack.cs: patch by JoergR@voelcker.com (Joerg Rosenkranz) that fixes
523 2003-08-20 Duncan Mak <duncan@ximian.com>
525 * Hashtable.cs (PutImpl): Fix my previous checkin, see details
526 posted on bug #47692.
528 I really hope I don't mess up this time, because, if I do again,
529 it will be really embarrassing.
531 2003-08-17 Duncan Mak <duncan@ximian.com>
533 * Hashtable.cs (PutImpl): Patch from Luca Barbieri <lb@lb.ods.org>.
534 Currently Hashtable.PutImpl has an incorrect test which causes the
535 key chain search to terminate as soon as a free slot is found,
536 causing key duplication.
538 This fixes bug #47692.
540 2003-08-11 Duncan Mak <duncan@ximian.com>
542 * DictionaryBase.cs: Applied patch from Carlos Barcenilla
543 (barce@frlp.utn.edu.ar).
545 (Idictionary.Add): Added OnValidate, and undo the transaction if
546 OnInsertCompleteFails.
548 (Indexer set): MS Implementation does not call OnInsert and undoes
549 if OnSetComplete throws an exception
550 (Indexer get): return value is obtained after calling OnGet.
552 (IDictionary.Remove): Call to OnValidate added. If key does not
553 exists calls OnValidate, OnRemove and OnRemoveComplete.
555 (protected IDictionary Dictionary get): Should return itself, not
558 This fixes bug #47460.
560 2003-08-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
562 * CollectionBase.cs: applied patch from Carlos Barcenilla
563 (barce@frlp.utn.edu.ar).
565 2003-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
567 * ArrayList.cs: added / so that gvim syntax highlight doesn't go crazy.
568 * CollectionBase.cs: fixed several bugs reported by Carlos Barcenilla
569 (barce@frlp.utn.edu.ar). Most of the patch is also his.
571 2003-07-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
573 * ArrayList.cs: fixed EnsureCapacity when m_Data.Length is 0.
575 2003-07-29 Miguel de Icaza <miguel@ximian.com>
577 * ArrayList.cs: Deployed ArrayList from Tum; Fixed iterator to
578 allow nulls, and inline a few calls to make profiling more useful.
580 2003-07-24 Miguel de Icaza <miguel@ximian.com>
582 * ArrayList.cs: Removed MonoTODO.
584 2003-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
586 * Hashtable.cs: made SynchedHashtable serializable. Fixes bug #45918.
587 Thanks to JoergR@voelcker.com (Joerg Rosenkranz).
589 2003-06-27 Duncan Mak <duncan@ximian.com>
591 * Hashtable.cs: Patch from PAF@design.ru, GetEnumerator should be
592 returning DictionaryEntrys, instead of just the Key of the table.
594 2003-06-26 Lluis Sanchez Gual <lluis@ximian.com>
596 * Hashtable.cs: Fixed bug when serializing and deserializing
597 a hashtable from which one element has been deleted. The Object instance
598 used as a removed marker is not detected as a such, since the
599 serializer creates a different instace.
601 2003-06-13 Herve Poussineau <hpoussineau@fr.st>
603 * SortedList.cs: Can enumerate on DictionaryEntries, not only on
604 keys on values. Enumerate by default on DictionaryEntries.
606 2003-06-12 Duncan Mak <duncan@ximian.com>
608 * Hashtable.cs (constructor):
609 if loadFactor equals Single.NaN, then throw an
610 ArgumentOutOfRangeException.
612 if we set capacity to be too big (ie. capacity / loadFactor is
613 greater than Int32.MaxValue), then we throw an ArgumentException.
615 2003-06-11 Duncan Mak <duncan@ximian.com>
617 * SortedList.cs: Oi! What a mess.
619 If the list was constructed using the null-param constructor, and
620 it tries to set it to a size lower than the default, let it do so.
622 If the list was constructed with a specific size, and it tries to
623 set it to a size lower than the specified size, set it to the
626 (IndexOfValue): Clean up the code somewhat, make it allow for
629 2003-06-08 Ben Maurer <bmaurer@users.sourceforge.net>
630 * ArrayList.cs, Hashtable.cs, SortedList.cs: Enumerator fixes, error
633 2003-06-07 Ben Maurer <bmaurer@users.sourceforge.net>
634 * Stack.cs: Contains (null) works correctly. We never have the
635 array sized less than 16, so that the doubling logic works no
636 matter what. The enumerator is IClonable, like in ms. The
637 Enumerator correctly throws an exception if Current is called
638 before the enumerator is started. We now pass all the Rotor tests
641 2003-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
643 * Stack.cs: fixed Clone ().
645 2003-06-04 Ben Maurer <bmaurer@users.sourceforge.net>
646 * DictionaryEntry.cs: Throw exception if key == null. Fixes Rotor
649 2003-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
651 * ArrayList.cs: nullify the array in Clear ().
652 * Queue.cs: nullify the array in Dequeue ().
653 * Stack.cs: nullify the array in Pop ().
655 2003-06-02 Ben Maurer <bmaurer@users.sourceforge.net>
656 * Queue.cs: Added argument checking in constructors according to
657 specs. Also changed default size to 32 as required by the specs.
659 2003-05-31 Ben Maurer <bmaurer@users.sourceforge.net>
660 * BitArray.cs: Rewrote, as it was failing most of the Rotor
661 tests. It now passes them 100%. Also fixes bug #43667.
663 2003-05-03 Ben Maurer <bmaurer@users.sourceforge.net>
665 Made ArrayList.GetRange () make a wrapper around the array list, like Microsoft does. Fixes bug #39724.
667 2003-05-03 Ben Maurer <bmaurer@users.sourceforge.net>
669 Added methods to support IList wrappers
671 2003-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
673 * ArrayList.cs: patch from bernard@ugsolutions.com (Bernie Solomon)
674 that fixes bug #41684.
676 2003-04-15 Eduardo Garcia Cebollero <kiwnix@yahoo.es>
678 * CaseInsensitiveComparerTest.cs: Fixed Compare Method (now works
679 like MS.NET) and implemented the
680 CaseInsensitiveComparerTest(culture) constructor.
682 2003-03-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
684 * Queue.cs: fixed bug #39046.
686 2003-02-15 Pedro Martnez Juli <yoros@wanadoo.es>
688 * Hashtable.cs: Make hashtable serializable (at least with binary
689 formatter). This process was started by the Hashtable maintainer.
691 2003-02-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
693 * ArrayList.cs: fixed setSize (!).
695 2003-01-31 Zoltan Varga <vargaz@freemail.hu>
697 * ArrayList.cs (RemoveAt): duplicated the the code from RemoveRange
698 here, since RemoveAt raises a different exception than RemoveRange
699 when the index is out-of-range. Fixes the ArrayList unit tests.
701 * ArrayList.cs (RemoveRange): fixed indentation.
703 2003-01-12 Varga Zoltan <vargaz@freemail.hu>
705 * ArrayList.cs (RemoveRange): Patch for allowing zero-size
706 removal at the end of a list. It also cleans up the argument
707 checking code so the raised exceptions have the same message as
710 2003-01-10 Duncan Mak <duncan@ximian.com>
712 * ArrayList.cs (Insert): Patch from Zoltan
713 (Zoltan.2.Varga@nokia.com).
715 2002-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
717 * Hashtable.cs: add the key to the error message when
720 2002-10-15 Vladimir Vukicevic <vladimir@pobox.com>
722 * Queue.cs: update new capacity in grow(), preventing queue from
723 constantly looping over old elements in Dequeue(). Also use
724 capacity instead of contents.Length in Enqueue().
726 2002-09-24 Nick Drochak <ndrochak@gol.com>
728 * ArrayList.cs: Make enumerator throw exception if the ArrayList is
729 mutated (Insert, Delete, etc.). Also, fix bug in InsertRange() when
730 this was passed as parameter.
732 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
734 * ArrayList.cs: fixed bug #29658.
736 2002-08-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
740 * CaseInsensitiveComparer.cs:
741 * CaseInsensitiveHashCodeProvider.cs:
743 * Queue.cs: misc. fixes based on class status page.
745 2002-07-22 Tim Coleman <tim@timcoleman.com>
746 * CaseInsensitiveHashCodeProvider.cs: Added missing constructor
747 which was breaking System.Web build on linux
749 2002-07-05 Sergey Chaban <serge@wildwestsoftware.com>
751 * SortedList.cs: Implemented thread-safe wrapper. Changed some
754 2002-07-02 Nick Drochak <ndrochak@gol.com>
756 * SortedList.cs: Constructors should use the capacity given regardless
757 how small. After a Clear() the Capacit should be 16. Since a Dictionary
758 might be used in the constructor, make sure we trap exceptions thrown
759 by the Comparer, like in Add().
761 2002-06-30 Nick Drochak <ndrochak@gol.com>
763 * SortedList.cs: Many fixed. A lot of checking for null and throwing
764 exceptions. A few logic bugs fixed as well
766 2002-06-25 Nick Drochak <ndrochak@gol.com>
768 * Queue.cs (CopyTo): Fix logic for copying the circular array.
769 (Enqueue): Use actual length of array to determine when to grow
770 (QueueEnumerator) Fixed Current to use array length, not capacity, and
771 fixed off-by-one errror in MoveNext().
773 Tue Jun 4 13:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
775 * ArrayList.cs: fixed RemoveAt() implementation.
777 2002-05-27 Nick Drochak <ndrochak@gol.com>
779 * ArrayList.cs (LastIndexOf): Return -1 if searching for null, also
780 fix check of parameters sent to make sure we don't search beyond the
781 beginning of the list.
782 (ListWrapper): Throw exception if called with null.
783 We now pass all unit tests.
785 2002-05-23 Duncan Mak <duncan@ximian.com>
787 * ArrayList.cs (Wrapper): Preliminary implementation of
788 ArrayList.Wrapper (IList).
790 2002-05-22 Martin Baulig <martin@gnome.org>
792 * ArrayList.cs: Made count, capacity and dataArray the first three
793 fields in the class. They're read by the reflection library.
795 2002-05-21 Lawrence Pit <loz@cable.a2000.nl>
797 * ArrayList.cs: Fixed bug where a capacity of 0 could be reached,
798 thereby causing problems when trying to add elements.
800 2002-05-06 Duncan Mak <duncan@ximian.com>
802 * Queue.cs (TrimToSize): Implemented.
804 2002-05-05 Nick Drochak <ndrochak@gol.com>
806 * ArrayList.cs: Throw RankException when constructing from a
807 multi-dimensional array. Confirmed behavior from MS.NET
809 Thu May 2 15:18:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
811 * ArrayList.cs: make mcs compile again: it's allowed to
812 call arraylist.CopyTo(array, 0) when the length of the array
815 Wed May 1 17:05:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
817 * SortedList.cs: fix RemoveAt () to use the correct length in
820 2002-05-01 Nick Drochak <ndrochak@gol.com>
822 * ArrayList.cs (Add & AddRange) : Throw exceptions where needed.
824 2002/05/01 Nick Drochak <ndrochak@gol.com>
826 * ArrayList.cs (CopyTo) : Check parameters and throw exceptions
829 2002/04/30 Nick Drochak <ndrochak@gol.com>
831 * ArrayList.cs (Clear) : Throw exception if ReadOnly or FixedSize.
832 (InsertRange) : Implement.
833 (SetRange) : Implement.
835 2002-04-30 Nick Drochak <ndrochak@gol.com>
837 * ArrayList.cs (TrimToSize) : Implement.
839 2002-04-28 Duncan Mak <duncan@ximian.com>
841 * ArrayList.cs (InsertRange):
844 (TrimToSize): Throw exceptions where needed.
846 2002-04-29 Nick Drochak <ndrochak@gol.com>
848 * Hashtable.cs (CopyTo): Throw exceptions where needed.
850 2002-04-28 Duncan Mak <duncan@ximian.com>
852 * ArrayList.cs (ReadOnly):
853 (IList.ReadOnly): Implemented.
856 (IList.Synchronized): Implemented.
859 (IList.FixedSize): Implemented.
861 2002-03-24 Duncan Mak <duncan@ximian.com>
863 * SortedList.cs (Synchronized): Stubbed out a missing method
864 pointed out by Jakk Simm's test suite.
866 2002-03-14 Nick Drochak <ndrochak@gol.com>
868 * ArrayList.cs (FixedSize(ArrayList)): should return an ArrayList. The
869 other FixedSize() methods returns an IList.
871 2002-03-13 Duncan Mak <duncan@ximian.com>
873 * ArrayList.cs (FixedSize): Changed the return type to IList if
874 the argument is an IList.
875 (Synchronized): Ditto here.
877 2002-03-08 Sergey Chaban <serge@wildwestsoftware.com>
879 * Hashtable.cs: Fixed ToPrime () bug. Removed ALLOC_GRAIN.
880 Removed unused code from static constructor.
881 GetObjectData () - Version is the same as modificationCount.
883 2002-02-20 Nick Drochak <ndrochak@gol.com>
885 * ArrayList.cs: Add MonoTODO's where necessary. Fix bugs discovered
886 by Bucky's tests. Implement a couple of things that were left undone.
888 Mon Feb 11 19:49:25 CET 2002 Paolo Molaro <lupus@ximian.com>
890 * ArrayList.cs: Dick's fix to contructor.
892 2002-02-07 Duncan Mak <duncan@ximian.com>
894 * Hashtable.cs: Implemented parts of the ISerializable
895 interface. GetObjectData () is good, but serialization constructor
896 needs some more love.
898 Sat Jan 5 15:56:54 CET 2002 Paolo Molaro <lupus@ximian.com>
900 * Hashtable.cs: the IDictionaryEnumerator returns DictionaryEntries.
902 2002-01-04 Ravi Pratap <ravi@ximian.com>
904 * Correct name to MonoTODO everywhere.
906 2002-01-04 Ravi Pratap <ravi@ximian.com>
908 * ArrayList.cs : Setting an index does not implicitly
909 extend the arraylist : remove FIXME.
911 Decorate incomplete elements with the TODO attribute.
913 * BitArray.cs : Insert TODO attributes where appropriate.
915 * CaseInsensitiveHashcodeProvider.cs: Ditto.
917 * Hashtable.cs, SortedList.cs : Ditto.
919 Thu Dec 13 20:17:08 CET 2001 Paolo Molaro <lupus@ximian.com>
921 * ArrayList.cs: implemented AddRange(), CopyTo().
923 2001-11-19 Miguel de Icaza <miguel@ximian.com>
925 * DictionaryBase.cs: Implemented.
927 Wed Nov 14 16:45:49 CET 2001 Paolo Molaro <lupus@ximian.com>
929 * ArrayList.cs: implement ArrayListEnumerator.
930 * Hashtable.cs: hardcode the prime number table.
932 2001-11-06 Nick Drochak <ndrochak@gol.com>
933 * Queue.cs: Fixes from Ricardardo. QueueTest also updated.
935 2001-11-04 Nick Drochak <ndrochak@gol.com>
936 * Queue.cs: Fixed small syntax errors that were preventing the compile.
937 I changed the build file to include Queue.cs as well.
939 2001-11-04 Nick Drochak <ndrochak@gol.com>
940 * ArrayList.cs: Fixed "off by one" error when shifting left the array when
943 * CollectionBase.cs: Added OnValidate(), OnRemove() and OnRemoveComplete()
944 hook methods to the RemoveAt() method.
946 2001-11-04 Nick Drochak <ndrochak@gol.com>
947 * ArrayList.cs: Added private enumerator class and make GetEnumerator()
948 methods return an instance of it.
950 Tue Sep 25 18:52:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
952 * ArrayList.cs: fix Insert () to check capacity, not count.
954 Tue Sep 25 16:54:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
956 * DictionaryEntry.cs: added.
958 2001-08-10 Dietmar Maurer <dietmar@ximian.com>
960 * common.src: removed duplicate entries
962 2001-08-08 Nick Drochak <ndrochak@gol.com>
964 * ReadOnlyCollectionBase.cs: Initialized private member.
965 * CollectionBase.cs: Initialized private member.
966 * common.src : Added ReadOnlyCollectionBase.cs and CollectionBase.cs
967 * /mcs/class/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
968 * /mcs/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
970 2001-08-08 Nick Drochak <nick@jobdragon.com>
972 * CollectionBase.cs: Add
973 * ReadOnlyCollectionBase.cs: Add
974 * CollectionBaseTest.cs: Add
975 * ReadOnlyCollectionBaseTest.cs: Add
977 2001-07-31 Garrett Rooney <rooneg@electricjellyfish.net>
979 * StackTest.cs: Add Test case for System.Collections.Stack.
980 Contributed by Chris Hynes <chrish@assistedsolutions.com>
982 2001-07-30 Garrett Rooney <rooneg@electricjellyfish.net>
984 * Stack.cs: Clone() doesn't need to check if it's synchronized, since
985 we override it in SyncStack anyway...
987 * Stack.cs: Pop() now shrinks the array if we drop below 1/4 full, to
988 avoid using massive amounts of memory that are not necessary. We only
989 drop to half the current size, which I hope will avoid the 'ping-pong'
992 * Stack.cs: SyncStack.IsReadOnly should return stack.IsReadOnly
993 instead of just returning false, since we may have a ReadOnly wrapper
994 in the future (although i can't imagine why). Thanks to David
995 Menestrina <dmenest@yahoo.com> for pointing this out.
997 2001-07-23 Sergey Chaban <serge@wildwestsoftware.com>
999 * Hashtable.cs: Fixed bug in Clear(), the Count wasn't zeroed.
1000 From now, Clear() increases modification count.
1001 Fixed HCP bug in GetHash(object) - hcp.GetHashCode() was used
1002 instead of hcp.GetHashCode(key). This was resulted in the
1003 insanely long lookup times when HashCodeProvider was used to
1004 construct Hashtable. Added thread-safe wrapper.
1006 2001-07-16 David Menestrina <dmenest@yahoo.com>
1009 * BitArrayTest.cs: Add
1011 2001-07-18 Miguel de Icaza <miguel@ximian.com>
1013 * IDictionary.cs (Collections): IDictionary implements ICollection
1014 as well. Thanks Sergey!
1016 2001-07-18 Garrett Rooney <rooneg@electricjellyfish.net>
1018 * Stack.cs Removed unnecessary locking from many methods of
1019 SyncStack, removed SyncEnumerator because it was unnecessary,
1020 added a modCount member to Stack and Stack.Enumerator, to
1021 ensure that the Stack has not been modified out form under the
1022 Enumerator, and changed the Enumerator to use a reference to the
1023 stack rather than copying over the contents array.
1025 2001-07-17 David Menestrina <dmenest@yahoo.com>
1027 * Added implementation of BitArray.
1029 2001-07-17 Miguel de Icaza <miguel@ximian.com>
1031 * Hashtable.cs: Removed call to d.Count in the Hashtable
1032 constructor that takes an IDictionary as IDictionary does not
1033 provide a Count field.
1035 2001-07-15 Sean MacIsaac <macisaac@ximian.com>
1037 * IDictionary.cs: Clear was clear.
1039 2001-07-13 Miguel de Icaza <miguel@ximian.com>
1041 * All files: Renamespace things to System.
1043 2001-07-05 Vladimir Vukicevic <vladimir@ximian.com>
1045 * ArrayList.cs: initial checkin and implementation
1047 * ICollection.cs, IComprarer.cs, IDictionary.cs,
1048 IDictionaryEnumerator.cs, IEnumerable.cs, IHashCodeProvider.cs,
1049 IList.cs: initial checkin