1 2007-11-05 Sebastien Pouliot <sebastien@ximian.com>
3 * Queue.cs: Avoid IndexOutOfRangeException after TrimToSize. Patch by
4 Benjamin Lutz. Fix #321657.
6 2007-10-25 Zoltan Varga <vargaz@gmail.com>
8 * Hashtable.cs: Put the hash values into a separate array to help the GC. Fixes
11 2007-10-23 Robert Jordan <robertj@gmx.net>
13 * SortedList.cs: Mark List|{Values|Keys} as serializable.
16 2007-08-25 Zoltan Varga <vargaz@gmail.com>
18 * ArrayList.cs: Fix overflows in BinarySearch and qsort.
20 2007-08-08 Atsushi Enomoto <atsushi@ximian.com>
22 * ReadOnlyCollectionBase.cs CollectionBase.cs :
23 cosmetic 2.0 API fixes.
25 2007-07-19 Juraj Skripsky <js@hotfeet.ch>
27 * ArrayList.cs (ArrayList.Adapter): If the given list already is an
28 ArrayList, just return it directly.
30 2007-07-05 Gert Driesen <drieseng@users.sourceforge.net>
32 * CaseInsensitiveHashCodeProvider.cs: Lazy init Default instance and
33 reconstruct it if CurrentCulture changes.
35 2007-07-05 Gert Driesen <drieseng@users.sourceforge.net>
37 * CaseInsensitiveHashCodeProvider.cs: In default ctor, do not save
38 TextInfo if current culture is invariant. Remoted private ctor.
39 In Default, always construct new instance since the current culture
42 2007-06-08 Ankit Jain <jankit@novell.com>
44 * ArrayList.cs (Shift): Clear the unused part of the array when
47 2006-12-29 Marek Safar <marek.safar@gmail.com>
49 * BitArray.cs: Performance improvements.
51 2006-11-16 Miguel de Icaza <miguel@novell.com>
53 * Hashtable.cs: Serialize EqualityComparer.
55 2006-08-16 Miguel de Icaza <miguel@novell.com>
57 * Hashtable.cs (PutImpl): Do not access the table twice, only
60 (TestPrime): optimize, take the sqrt out of the loop.
62 2006-08-08 Duncan Mak <duncan@novell.com>
64 * ReadOnlyCollectionBase.cs (Count): Mark as virtual in
65 NET_2_0. Fixes #79033.
67 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
69 * Comparer.cs : changed internal field from CultureInfo to
70 CompareInfo. This cosmetic change should fix bug #77701.
72 2006-03-28 Marek Safar <marek.safar@seznam.cz>
74 * Stack.cs: Changed ctor to allocate only requested memory.
76 Tue Feb 28 14:16:25 CET 2006 Paolo Molaro <lupus@ximian.com>
78 * BitArray.cs: reintroduce optimization carelessly removed by
81 2006-02-03 Sebastien Robitaille <sebastien.robitaille@croesus.com>
83 * BitArray.cs: Renamed members for interoperability with MS.
85 Tue Jan 24 18:24:00 CET 2006 Paolo Molaro <lupus@ximian.com>
87 * BitArray.cs: optimize bit access by removing expensive
90 2006-01-04 Sebastien Pouliot <sebastien@ximian.com>
92 * Hashtable.cs: Mark all inner classes as [Serializable] to match MS
93 behaviour. Fix bug #76300.
95 2005-12-19 Sebastien Pouliot <sebastien@ximian.com>
97 * ArrayList.cs: Fix default capacity under 2.0 (and unit tests under
100 2005-12-07 Sebastien Pouliot <sebastien@ximian.com>
102 * SortedList.cs: Removed check for IComparable in ctor (fixed bug
103 #76750). Removed unused private method. Added more useful info (the
104 duplicate key) to an exception.
106 2005-12-06 Sebastien Pouliot <sebastien@ximian.com>
108 * CaseInsensitiveHashCodeProvider: Serialization is now compatible
109 with MS. Removes the last TODO for 1.1 in this namespace :-)
111 2005-12-05 Sebastien Pouliot <sebastien@ximian.com>
113 * Comparer.cs: Added GetObjectData method to implement ISerializable.
115 2005-09-29 Miguel de Icaza <miguel@novell.com>
117 * Add ComVisible(true) to all the classes that needed it.
119 * Removed documentation from DictionaryBase.cs and moved it to
122 * ArrayList.cs: Fixed signature for constructor, parameter names
125 * CollectionBase.cs: Add a couple of missing methods.
127 2005-09-01 Atsushi Enomoto <atsushi@ximian.com>
129 * Hashtable.cs : SyncHashtable.GetEnumerator() returned keys instead
130 of entries (DictionaryEntry). Fixed bug #75790.
132 2005-09-01 Atsushi Enomoto <atsushi@ximian.com>
134 * SortedList.cs : Even though the key/value pair being set are
135 identical to the existing one, it causes snapshot out of sync.
138 2005-07-21 Lluis Sanchez Gual <lluis@novell.com>
140 * CollectionBase.cs: Lazily create the inner list. MS.NET does
141 it and we need to do the same for the sake of serialization
142 interoperability. Fixes bug #75575.
144 2005-07-17 Florian Gross <flgr@ccan.de>
146 * ArrayList.cs: pass along index offset in RangedArrayList:ToArray.
149 2005-06-23 Ben Maurer <bmaurer@ximian.com>
151 * Queue.cs: Use the enumerator rather than copy to in the
152 ctor. This makes us more compat with msft, for example, when
157 2005-06-23 Martin Baulig <martin@ximian.com>
159 * IKeyComparer.cs: Removed.
161 2005-06-12 David Waite <dwaite@gmail.com>
163 * Hashtable.cs: make prime-related functions internal so generic
164 Dictionary can use them.
165 * IEqualityComparer.cs: add non-generic IEqualityComparer interface
167 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
169 * Hashtable.cs: Add some missing 2.0 attributes.
171 2005-05-26 Ben Maurer <bmaurer@ximian.com>
173 * Queue.cs (grow): fix 61919.
175 2005-05-09 Atsushi Enomoto <atsushi@ximian.com>
177 * Stack.cs : empty_stack.CopyTo(empty_array, 0) should be allowed.
179 2005-02-21 Zoltan Varga <vargaz@freemail.hu>
181 * Hashtable.cs: Add net 2.0 ReliabilityContractAttributes.
183 2005-02-19 Kazuki Oikawa <kazuki@panicode.com>
185 * SortedList.cs, Stack.cs: Reverse the order in the Equals calls.
187 2004-12-21 Ben Maurer <bmaurer@ximian.com>
189 * Hashtable.cs (get_Item): duplicate Find here, as we can
190 specialize a few things. This gives me 7% back.
191 (Find) Use break rather than return -1. Saves a bit of code.
193 * Hashtable.cs (GetHash): Avoid a method call. Also, don't store
194 the this.hcpRef in a variable. This will create another register
195 which must be pushed on the stack. It is better to just reference
196 the variable again. hcpRef.GetHashCode (key) is the slow path
197 anyways, so an extra variable reference here doesn't hurt
200 This gives me a few % back in a raw benchmark.
202 2004-12-20 Ben Maurer <bmaurer@ximian.com>
204 * Hashtable.cs (Find): Some minor optimizations here.
206 * Hashtable.cs: Remove GetImpl and inline it.
208 * Hashtable.cs (Find): Before calling KeyEquals, check to see if k
209 == key (ie, they are the same pointer). In many cases, this will
210 avoid two virtual calls. This gives me 1% on mcs bootstrap (!!!!)
212 * Hashtable.cs (Find): Make `i' a uint rather than an int. This
213 avoids having a long compare.
215 2004-12-16 Lluis Sanchez Gual <lluis@novell.com>
217 * Hashtable.cs: Check for null serialization info in OnDeserialization.
218 A hashtable subclass can fully override the constructor, so
219 serializationInfo would be null in this case. Fixes bug #70698.
221 2004-12-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
223 * ArrayList.cs: don't initialize _items twice. Closes bug #70620.
225 2004-12-16 Lluis Sanchez Gual <lluis@novell.com>
227 * Hashtable.cs: Add deserialized elements in OnDeserialization, since
228 when the serialization constructor is called, some of the elements
229 may not yet be fully deserialized. This fixes bug #70570.
231 2004-10-08 Raja R Harinath <rharinath@novell.com>
233 * CaseInsensitiveHashCodeProvider.cs (GetHashCode): When culture
234 is not invariant, avoid an icall on every character.
236 2004-07-21 Geoff Norton <gnorton@customerdna.com>
238 * Hashtable.cs: lock the SyncRoot when Cloning a Synchronized hashtable to avoid
239 a snapshot out of sync error.
241 2004-07-21 Duncan Mak <duncan@ximian.com>
243 * DictionaryBase.cs: Rename the dictionary field to hashtable,
244 which causes a serialization interop bug. Fixes bug #61721.
246 2004-06-18 Ben Maurer <bmaurer@ximian.com>
248 * IKeyComparer.cs: v2 class
250 2004-06-15 Gert Driesen <drieseng@users.sourceforge.net>
252 * CaseInsensitiveComparer.cs: added TODO for serialization
253 * CaseInsensitiveHashCodeProvider.cs: added TODO for serialization
254 * SortedList.cs: added TODO for serialization
255 * Stack.cs: added TODO for serialization
257 2004-06-14 Sebastien Pouliot <sebastien@ximian.com>
259 * Hashtable.cs: Compare index and length in CopyTo only when length > 0.
261 2004-06-14 Lluis Sanchez Gual <lluis@ximian.com>
263 * ArrayList.cs: Avoid endless loop in Insert when the current size is 0.
265 2004-06-08 Lluis Sanchez Gual <lluis@ximian.com>
267 * ReadOnlyCollectionBase.cs: Renamed internal variable to make serialization
268 compatible with MS.NET.
270 2004-06-01 Sebastien Pouliot <sebastien@ximian.com>
272 * SortedList.cs: Fixed case where the initial capacity was set to 0.
274 2004-05-31 Sebastien Pouliot <sebastien@ximian.com>
276 * Hashtable.cs: Added ArgumentNullException in GetObjectData.
278 2004-05-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
281 * Comparer.cs: reverted last 2 patches from Gert Driesen. Totally wrong.
284 2004-05-29 Gert Driesen (drieseng@users.sourceforge.net)
286 * Compare.cs: ISerializable should only be implemented
289 2004-05-29 Gert Driesen (drieseng@users.sourceforge.net)
291 * Compare.cs: Implemented ISerializable, fixes public API
293 2004-05-27 Sebastien Pouliot <sebastien@ximian.com>
295 * Hashtable.cs: Cloned synchronized Hashtables are now synchronized.
296 * Queue.cs: Fixed case where we could still get Current after the last
297 MoveNext. Fixed Count for Queue.Synchronize (Queue.Synchronize (q)).
298 * SortedList.cs: Added missing ICloneable support to internal
299 enumerator. Added Capacity to the synchronized version of SortedList.
300 Setting Capacity to 0 returns it to it's default value (16).
302 2004-05-26 Sebastien Pouliot <sebastien@ximian.com>
304 * ArrayList.cs: Fixed possible integer overflows.
306 2004-05-24 Lluis Sanchez Gual <lluis@ximian.com>
308 * Hashtable.cs: Renamed internal class to make serialization compatible
311 2004-05-10 Gert Driesen (drieseng@users.sourceforge.net)
312 * Hashtable.cs: marked EnumeratorMode private
313 * SortedList.cs: marked EnumeratorMode private
315 2004-05-01 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
317 * Comparer.cs: ensure culture is set to null , removed
318 static constructor, removed unneccesary checks
320 2004-05-01 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
322 * CaseInsensitiveComparer.cs: Fix the default constructor (needs to
323 set CurrentCulture, ensure culture is set to null for invariant case,
325 * Comparer.cs: Restyle, change lineendings
327 2004-05-01 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
329 * CaseInsensitiveHashCodeProvider.cs
330 * CaseInsensitiveComparer.cs: Change lineendings
331 * CaseInsensitiveComparer.cs: Restyle
333 2004-05-01 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
335 * BitArray.cs: Fix parameter names
336 * CaseInsensitiveHashCodeProvider.cs: Fix signature
337 * DictionaryEntry.cs: Fix parameter names
338 * Hashtable.cs: Fix signatures
339 * SortedList.cs: Fix signatures
341 2004-04-25 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
343 * CaseInsensitiveHashCodeProvider.cs: Fix the default constructor (needs to
344 set CurrentCulture, Add null check to other constructor, Call correct function
345 for invariant case, ensure culture is set to null for invariant case, removed
346 static constructor, made invariant version available as internal in .Net 1.0
348 2004-04-21 Lluis Sanchez Gual <lluis@ximian.com>
350 * CaseInsensitiveHashCodeProvider.cs: If the culture is null, don't use
351 Char.ToLower(c,culture), since it does not accept null as culture.
353 2004-04-20 Lluis Sanchez Gual <lluis@ximian.com>
355 * Queue.cs: Renamed internal membesr to match MS.NET (to allow serialization
356 interoperability). I also had to make some changes in the implementation:
357 I added a field _tail that points at the first free position in the array, and
358 changed the type of growFactor, which is now an int (its value is the old
361 2004-04-19 Lluis Sanchez Gual <lluis@ximian.com>
363 * Comparer.cs: Made constructor public.
365 2004-03-30 Lluis Sanchez Gual <lluis@ximian.com>
367 * CaseInsensitiveHashCodeProvider.cs: Use the CultureInfo of the calling
368 thread, not the one of the thread that created the instance.
369 * Comparer.cs: Added DefaultInvariant property and missing constructor.
370 Use the specified culture info to compare strings.
372 2004-03-30 Lluis Sanchez Gual <lluis@ximian.com>
374 * CaseInsensitiveHashCodeProvider.cs: Added support for CultureInfo.
375 Implemented property DefaultInvariant.
377 2004-03-29 Lluis Sanchez Gual <lluis@ximian.com>
379 * CollectionBase.cs: Renamed internal arraylist member to match MS.NET
380 (to allow serialization interoperability).
382 2004-03-18 David Sheldon <dave-mono@earth.li>
384 * Hashtable.cs: Serialise/Deserialise to two arrays of
385 keys/values. This will match what MS.NET appears to be
388 2004-02-12 Jackson Harper <jackson@ximian.com>
390 * SortedList.cs: Only .et 1.0 sets the capacity to a min of
393 2004-01-13 Lluis Sanchez Gual <lluis@ximian.com>
395 * Hashtable.cs: Added serialization support to SynchedHashtable. This
398 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
400 * Hashtable.cs: fix Clone. Closes bug #52740. Patch by Benjamin Jemlich
403 2003-12-26 Ben Maurer <bmaurer@users.sourceforge.net>
405 * ArrayList.cs: Add class `SimpleEnumerator' this handles the
406 .GetEnumerator We are able to remove fields by doing this, the
407 sizeof the simple version is 75% of that of the complex one, so we
408 get a pretty nice saving.
410 2003-12-23 Lluis Sanchez Gual <lluis@ximian.com>
412 * ArrayList.cs: Renamed private fields m_Count, m_Data and
413 m_StateChanges to _size, _items and _version, to make it compatible with
414 MS.NET (needed for remoting interoperability). This fixes bug #52438.
416 2003-12-01 Dick Porter <dick@ximian.com>
418 * CaseInsensitiveComparer.cs: Construct the default comparers when
419 they're needed, to avoid a dependency loop with CultureInfo's
422 2003-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
424 * Queue.cs: patch from Carlos Barcenilla.
426 - method: ICollection.Clone()
427 - Optimized. Removed unneeded instructions.
428 - method: public static Queue Synchronized (Queue queue)
429 - ArgumentNullException.ParamName must be "queue", not null.
430 - method: public virtual void TrimToSize()
431 - Must increment modCount.
433 private class SyncQueue
434 - method: public override object Clone ()
435 - Must return a synchronized (SyncStack) instance.
436 - method: public override void TrimToSize ()
439 2003-11-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
441 * IEnumerator.cs: Added missing attribute
443 2003-11-12 Miguel de Icaza <miguel@ximian.com>
445 * CaseInsensitiveComparer.cs: Add missing method.
447 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
449 * Stack.cs: Applied patch from Carlos A. Barcenilla to fix minor
452 2003-11-03 Lluis Sanchez Gual <lluis@ximian.com>
454 * SortedList.cs: Added [Serializable] to Slot class. This fixes bug #50484.
456 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
458 * System.Collections/Hashtable.cs: patch from Carlos A.
459 Barcenilla (barce@frlp.utn.edu.ar) that includes some fixes for
460 Hashtable + NUnit2 tests.
462 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
464 * Queue.cs: nullify the array in Clear.
466 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
468 * Hashtable.cs: Remove empty static constructor since it prevents this
469 class from being beforefieldinit.
471 2003-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
473 * CaseInsensitiveHashCodeProvider.cs: small speed improvement.
475 2003-08-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
477 * Stack.cs: patch by JoergR@voelcker.com (Joerg Rosenkranz) that fixes
480 2003-08-20 Duncan Mak <duncan@ximian.com>
482 * Hashtable.cs (PutImpl): Fix my previous checkin, see details
483 posted on bug #47692.
485 I really hope I don't mess up this time, because, if I do again,
486 it will be really embarrassing.
488 2003-08-17 Duncan Mak <duncan@ximian.com>
490 * Hashtable.cs (PutImpl): Patch from Luca Barbieri <lb@lb.ods.org>.
491 Currently Hashtable.PutImpl has an incorrect test which causes the
492 key chain search to terminate as soon as a free slot is found,
493 causing key duplication.
495 This fixes bug #47692.
497 2003-08-11 Duncan Mak <duncan@ximian.com>
499 * DictionaryBase.cs: Applied patch from Carlos Barcenilla
500 (barce@frlp.utn.edu.ar).
502 (Idictionary.Add): Added OnValidate, and undo the transaction if
503 OnInsertCompleteFails.
505 (Indexer set): MS Implementation does not call OnInsert and undoes
506 if OnSetComplete throws an exception
507 (Indexer get): return value is obtained after calling OnGet.
509 (IDictionary.Remove): Call to OnValidate added. If key does not
510 exists calls OnValidate, OnRemove and OnRemoveComplete.
512 (protected IDictionary Dictionary get): Should return itself, not
515 This fixes bug #47460.
517 2003-08-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
519 * CollectionBase.cs: applied patch from Carlos Barcenilla
520 (barce@frlp.utn.edu.ar).
522 2003-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
524 * ArrayList.cs: added / so that gvim syntax highlight doesn't go crazy.
525 * CollectionBase.cs: fixed several bugs reported by Carlos Barcenilla
526 (barce@frlp.utn.edu.ar). Most of the patch is also his.
528 2003-07-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
530 * ArrayList.cs: fixed EnsureCapacity when m_Data.Length is 0.
532 2003-07-29 Miguel de Icaza <miguel@ximian.com>
534 * ArrayList.cs: Deployed ArrayList from Tum; Fixed iterator to
535 allow nulls, and inline a few calls to make profiling more useful.
537 2003-07-24 Miguel de Icaza <miguel@ximian.com>
539 * ArrayList.cs: Removed MonoTODO.
541 2003-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
543 * Hashtable.cs: made SynchedHashtable serializable. Fixes bug #45918.
544 Thanks to JoergR@voelcker.com (Joerg Rosenkranz).
546 2003-06-27 Duncan Mak <duncan@ximian.com>
548 * Hashtable.cs: Patch from PAF@design.ru, GetEnumerator should be
549 returning DictionaryEntrys, instead of just the Key of the table.
551 2003-06-26 Lluis Sanchez Gual <lluis@ximian.com>
553 * Hashtable.cs: Fixed bug when serializing and deserializing
554 a hashtable from which one element has been deleted. The Object instance
555 used as a removed marker is not detected as a such, since the
556 serializer creates a different instace.
558 2003-06-13 Herve Poussineau <hpoussineau@fr.st>
560 * SortedList.cs: Can enumerate on DictionaryEntries, not only on
561 keys on values. Enumerate by default on DictionaryEntries.
563 2003-06-12 Duncan Mak <duncan@ximian.com>
565 * Hashtable.cs (constructor):
566 if loadFactor equals Single.NaN, then throw an
567 ArgumentOutOfRangeException.
569 if we set capacity to be too big (ie. capacity / loadFactor is
570 greater than Int32.MaxValue), then we throw an ArgumentException.
572 2003-06-11 Duncan Mak <duncan@ximian.com>
574 * SortedList.cs: Oi! What a mess.
576 If the list was constructed using the null-param constructor, and
577 it tries to set it to a size lower than the default, let it do so.
579 If the list was constructed with a specific size, and it tries to
580 set it to a size lower than the specified size, set it to the
583 (IndexOfValue): Clean up the code somewhat, make it allow for
586 2003-06-08 Ben Maurer <bmaurer@users.sourceforge.net>
587 * ArrayList.cs, Hashtable.cs, SortedList.cs: Enumerator fixes, error
590 2003-06-07 Ben Maurer <bmaurer@users.sourceforge.net>
591 * Stack.cs: Contains (null) works correctly. We never have the
592 array sized less than 16, so that the doubling logic works no
593 matter what. The enumerator is IClonable, like in ms. The
594 Enumerator correctly throws an exception if Current is called
595 before the enumerator is started. We now pass all the Rotor tests
598 2003-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
600 * Stack.cs: fixed Clone ().
602 2003-06-04 Ben Maurer <bmaurer@users.sourceforge.net>
603 * DictionaryEntry.cs: Throw exception if key == null. Fixes Rotor
606 2003-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
608 * ArrayList.cs: nullify the array in Clear ().
609 * Queue.cs: nullify the array in Dequeue ().
610 * Stack.cs: nullify the array in Pop ().
612 2003-06-02 Ben Maurer <bmaurer@users.sourceforge.net>
613 * Queue.cs: Added argument checking in constructors according to
614 specs. Also changed default size to 32 as required by the specs.
616 2003-05-31 Ben Maurer <bmaurer@users.sourceforge.net>
617 * BitArray.cs: Rewrote, as it was failing most of the Rotor
618 tests. It now passes them 100%. Also fixes bug #43667.
620 2003-05-03 Ben Maurer <bmaurer@users.sourceforge.net>
622 Made ArrayList.GetRange () make a wrapper around the array list, like Microsoft does. Fixes bug #39724.
624 2003-05-03 Ben Maurer <bmaurer@users.sourceforge.net>
626 Added methods to support IList wrappers
628 2003-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
630 * ArrayList.cs: patch from bernard@ugsolutions.com (Bernie Solomon)
631 that fixes bug #41684.
633 2003-04-15 Eduardo Garcia Cebollero <kiwnix@yahoo.es>
635 * CaseInsensitiveComparerTest.cs: Fixed Compare Method (now works
636 like MS.NET) and implemented the
637 CaseInsensitiveComparerTest(culture) constructor.
639 2003-03-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
641 * Queue.cs: fixed bug #39046.
643 2003-02-15 Pedro Martnez Juli <yoros@wanadoo.es>
645 * Hashtable.cs: Make hashtable serializable (at least with binary
646 formatter). This process was started by the Hashtable maintainer.
648 2003-02-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
650 * ArrayList.cs: fixed setSize (!).
652 2003-01-31 Zoltan Varga <vargaz@freemail.hu>
654 * ArrayList.cs (RemoveAt): duplicated the the code from RemoveRange
655 here, since RemoveAt raises a different exception than RemoveRange
656 when the index is out-of-range. Fixes the ArrayList unit tests.
658 * ArrayList.cs (RemoveRange): fixed indentation.
660 2003-01-12 Varga Zoltan <vargaz@freemail.hu>
662 * ArrayList.cs (RemoveRange): Patch for allowing zero-size
663 removal at the end of a list. It also cleans up the argument
664 checking code so the raised exceptions have the same message as
667 2003-01-10 Duncan Mak <duncan@ximian.com>
669 * ArrayList.cs (Insert): Patch from Zoltan
670 (Zoltan.2.Varga@nokia.com).
672 2002-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
674 * Hashtable.cs: add the key to the error message when
677 2002-10-15 Vladimir Vukicevic <vladimir@pobox.com>
679 * Queue.cs: update new capacity in grow(), preventing queue from
680 constantly looping over old elements in Dequeue(). Also use
681 capacity instead of contents.Length in Enqueue().
683 2002-09-24 Nick Drochak <ndrochak@gol.com>
685 * ArrayList.cs: Make enumerator throw exception if the ArrayList is
686 mutated (Insert, Delete, etc.). Also, fix bug in InsertRange() when
687 this was passed as parameter.
689 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
691 * ArrayList.cs: fixed bug #29658.
693 2002-08-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
697 * CaseInsensitiveComparer.cs:
698 * CaseInsensitiveHashCodeProvider.cs:
700 * Queue.cs: misc. fixes based on class status page.
702 2002-07-22 Tim Coleman <tim@timcoleman.com>
703 * CaseInsensitiveHashCodeProvider.cs: Added missing constructor
704 which was breaking System.Web build on linux
706 2002-07-05 Sergey Chaban <serge@wildwestsoftware.com>
708 * SortedList.cs: Implemented thread-safe wrapper. Changed some
711 2002-07-02 Nick Drochak <ndrochak@gol.com>
713 * SortedList.cs: Constructors should use the capacity given regardless
714 how small. After a Clear() the Capacit should be 16. Since a Dictionary
715 might be used in the constructor, make sure we trap exceptions thrown
716 by the Comparer, like in Add().
718 2002-06-30 Nick Drochak <ndrochak@gol.com>
720 * SortedList.cs: Many fixed. A lot of checking for null and throwing
721 exceptions. A few logic bugs fixed as well
723 2002-06-25 Nick Drochak <ndrochak@gol.com>
725 * Queue.cs (CopyTo): Fix logic for copying the circular array.
726 (Enqueue): Use actual length of array to determine when to grow
727 (QueueEnumerator) Fixed Current to use array length, not capacity, and
728 fixed off-by-one errror in MoveNext().
730 Tue Jun 4 13:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
732 * ArrayList.cs: fixed RemoveAt() implementation.
734 2002-05-27 Nick Drochak <ndrochak@gol.com>
736 * ArrayList.cs (LastIndexOf): Return -1 if searching for null, also
737 fix check of parameters sent to make sure we don't search beyond the
738 beginning of the list.
739 (ListWrapper): Throw exception if called with null.
740 We now pass all unit tests.
742 2002-05-23 Duncan Mak <duncan@ximian.com>
744 * ArrayList.cs (Wrapper): Preliminary implementation of
745 ArrayList.Wrapper (IList).
747 2002-05-22 Martin Baulig <martin@gnome.org>
749 * ArrayList.cs: Made count, capacity and dataArray the first three
750 fields in the class. They're read by the reflection library.
752 2002-05-21 Lawrence Pit <loz@cable.a2000.nl>
754 * ArrayList.cs: Fixed bug where a capacity of 0 could be reached,
755 thereby causing problems when trying to add elements.
757 2002-05-06 Duncan Mak <duncan@ximian.com>
759 * Queue.cs (TrimToSize): Implemented.
761 2002-05-05 Nick Drochak <ndrochak@gol.com>
763 * ArrayList.cs: Throw RankException when constructing from a
764 multi-dimensional array. Confirmed behavior from MS.NET
766 Thu May 2 15:18:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
768 * ArrayList.cs: make mcs compile again: it's allowed to
769 call arraylist.CopyTo(array, 0) when the length of the array
772 Wed May 1 17:05:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
774 * SortedList.cs: fix RemoveAt () to use the correct length in
777 2002-05-01 Nick Drochak <ndrochak@gol.com>
779 * ArrayList.cs (Add & AddRange) : Throw exceptions where needed.
781 2002/05/01 Nick Drochak <ndrochak@gol.com>
783 * ArrayList.cs (CopyTo) : Check parameters and throw exceptions
786 2002/04/30 Nick Drochak <ndrochak@gol.com>
788 * ArrayList.cs (Clear) : Throw exception if ReadOnly or FixedSize.
789 (InsertRange) : Implement.
790 (SetRange) : Implement.
792 2002-04-30 Nick Drochak <ndrochak@gol.com>
794 * ArrayList.cs (TrimToSize) : Implement.
796 2002-04-28 Duncan Mak <duncan@ximian.com>
798 * ArrayList.cs (InsertRange):
801 (TrimToSize): Throw exceptions where needed.
803 2002-04-29 Nick Drochak <ndrochak@gol.com>
805 * Hashtable.cs (CopyTo): Throw exceptions where needed.
807 2002-04-28 Duncan Mak <duncan@ximian.com>
809 * ArrayList.cs (ReadOnly):
810 (IList.ReadOnly): Implemented.
813 (IList.Synchronized): Implemented.
816 (IList.FixedSize): Implemented.
818 2002-03-24 Duncan Mak <duncan@ximian.com>
820 * SortedList.cs (Synchronized): Stubbed out a missing method
821 pointed out by Jakk Simm's test suite.
823 2002-03-14 Nick Drochak <ndrochak@gol.com>
825 * ArrayList.cs (FixedSize(ArrayList)): should return an ArrayList. The
826 other FixedSize() methods returns an IList.
828 2002-03-13 Duncan Mak <duncan@ximian.com>
830 * ArrayList.cs (FixedSize): Changed the return type to IList if
831 the argument is an IList.
832 (Synchronized): Ditto here.
834 2002-03-08 Sergey Chaban <serge@wildwestsoftware.com>
836 * Hashtable.cs: Fixed ToPrime () bug. Removed ALLOC_GRAIN.
837 Removed unused code from static constructor.
838 GetObjectData () - Version is the same as modificationCount.
840 2002-02-20 Nick Drochak <ndrochak@gol.com>
842 * ArrayList.cs: Add MonoTODO's where necessary. Fix bugs discovered
843 by Bucky's tests. Implement a couple of things that were left undone.
845 Mon Feb 11 19:49:25 CET 2002 Paolo Molaro <lupus@ximian.com>
847 * ArrayList.cs: Dick's fix to contructor.
849 2002-02-07 Duncan Mak <duncan@ximian.com>
851 * Hashtable.cs: Implemented parts of the ISerializable
852 interface. GetObjectData () is good, but serialization constructor
853 needs some more love.
855 Sat Jan 5 15:56:54 CET 2002 Paolo Molaro <lupus@ximian.com>
857 * Hashtable.cs: the IDictionaryEnumerator returns DictionaryEntries.
859 2002-01-04 Ravi Pratap <ravi@ximian.com>
861 * Correct name to MonoTODO everywhere.
863 2002-01-04 Ravi Pratap <ravi@ximian.com>
865 * ArrayList.cs : Setting an index does not implicitly
866 extend the arraylist : remove FIXME.
868 Decorate incomplete elements with the TODO attribute.
870 * BitArray.cs : Insert TODO attributes where appropriate.
872 * CaseInsensitiveHashcodeProvider.cs: Ditto.
874 * Hashtable.cs, SortedList.cs : Ditto.
876 Thu Dec 13 20:17:08 CET 2001 Paolo Molaro <lupus@ximian.com>
878 * ArrayList.cs: implemented AddRange(), CopyTo().
880 2001-11-19 Miguel de Icaza <miguel@ximian.com>
882 * DictionaryBase.cs: Implemented.
884 Wed Nov 14 16:45:49 CET 2001 Paolo Molaro <lupus@ximian.com>
886 * ArrayList.cs: implement ArrayListEnumerator.
887 * Hashtable.cs: hardcode the prime number table.
889 2001-11-06 Nick Drochak <ndrochak@gol.com>
890 * Queue.cs: Fixes from Ricardardo. QueueTest also updated.
892 2001-11-04 Nick Drochak <ndrochak@gol.com>
893 * Queue.cs: Fixed small syntax errors that were preventing the compile.
894 I changed the build file to include Queue.cs as well.
896 2001-11-04 Nick Drochak <ndrochak@gol.com>
897 * ArrayList.cs: Fixed "off by one" error when shifting left the array when
900 * CollectionBase.cs: Added OnValidate(), OnRemove() and OnRemoveComplete()
901 hook methods to the RemoveAt() method.
903 2001-11-04 Nick Drochak <ndrochak@gol.com>
904 * ArrayList.cs: Added private enumerator class and make GetEnumerator()
905 methods return an instance of it.
907 Tue Sep 25 18:52:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
909 * ArrayList.cs: fix Insert () to check capacity, not count.
911 Tue Sep 25 16:54:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
913 * DictionaryEntry.cs: added.
915 2001-08-10 Dietmar Maurer <dietmar@ximian.com>
917 * common.src: removed duplicate entries
919 2001-08-08 Nick Drochak <ndrochak@gol.com>
921 * ReadOnlyCollectionBase.cs: Initialized private member.
922 * CollectionBase.cs: Initialized private member.
923 * common.src : Added ReadOnlyCollectionBase.cs and CollectionBase.cs
924 * /mcs/class/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
925 * /mcs/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
927 2001-08-08 Nick Drochak <nick@jobdragon.com>
929 * CollectionBase.cs: Add
930 * ReadOnlyCollectionBase.cs: Add
931 * CollectionBaseTest.cs: Add
932 * ReadOnlyCollectionBaseTest.cs: Add
934 2001-07-31 Garrett Rooney <rooneg@electricjellyfish.net>
936 * StackTest.cs: Add Test case for System.Collections.Stack.
937 Contributed by Chris Hynes <chrish@assistedsolutions.com>
939 2001-07-30 Garrett Rooney <rooneg@electricjellyfish.net>
941 * Stack.cs: Clone() doesn't need to check if it's synchronized, since
942 we override it in SyncStack anyway...
944 * Stack.cs: Pop() now shrinks the array if we drop below 1/4 full, to
945 avoid using massive amounts of memory that are not necessary. We only
946 drop to half the current size, which I hope will avoid the 'ping-pong'
949 * Stack.cs: SyncStack.IsReadOnly should return stack.IsReadOnly
950 instead of just returning false, since we may have a ReadOnly wrapper
951 in the future (although i can't imagine why). Thanks to David
952 Menestrina <dmenest@yahoo.com> for pointing this out.
954 2001-07-23 Sergey Chaban <serge@wildwestsoftware.com>
956 * Hashtable.cs: Fixed bug in Clear(), the Count wasn't zeroed.
957 From now, Clear() increases modification count.
958 Fixed HCP bug in GetHash(object) - hcp.GetHashCode() was used
959 instead of hcp.GetHashCode(key). This was resulted in the
960 insanely long lookup times when HashCodeProvider was used to
961 construct Hashtable. Added thread-safe wrapper.
963 2001-07-16 David Menestrina <dmenest@yahoo.com>
966 * BitArrayTest.cs: Add
968 2001-07-18 Miguel de Icaza <miguel@ximian.com>
970 * IDictionary.cs (Collections): IDictionary implements ICollection
971 as well. Thanks Sergey!
973 2001-07-18 Garrett Rooney <rooneg@electricjellyfish.net>
975 * Stack.cs Removed unnecessary locking from many methods of
976 SyncStack, removed SyncEnumerator because it was unnecessary,
977 added a modCount member to Stack and Stack.Enumerator, to
978 ensure that the Stack has not been modified out form under the
979 Enumerator, and changed the Enumerator to use a reference to the
980 stack rather than copying over the contents array.
982 2001-07-17 David Menestrina <dmenest@yahoo.com>
984 * Added implementation of BitArray.
986 2001-07-17 Miguel de Icaza <miguel@ximian.com>
988 * Hashtable.cs: Removed call to d.Count in the Hashtable
989 constructor that takes an IDictionary as IDictionary does not
990 provide a Count field.
992 2001-07-15 Sean MacIsaac <macisaac@ximian.com>
994 * IDictionary.cs: Clear was clear.
996 2001-07-13 Miguel de Icaza <miguel@ximian.com>
998 * All files: Renamespace things to System.
1000 2001-07-05 Vladimir Vukicevic <vladimir@ximian.com>
1002 * ArrayList.cs: initial checkin and implementation
1004 * ICollection.cs, IComprarer.cs, IDictionary.cs,
1005 IDictionaryEnumerator.cs, IEnumerable.cs, IHashCodeProvider.cs,
1006 IList.cs: initial checkin