2009-03-01 Zoltan Varga * NameValueCollection.cs (AsSingleString): Avoid the allocation of a stringbuilder for collections with only one element. 2008-09-09 Scott Peterson * BitVector32.cs: Minor fixes. Simplified Section.ToString and GetHashCode, and BitVector32.Equals. 2008-08-06 Scott Peterson * BitVector32.cs: Fixed a bug which allowed for invalid sections to be created with CreateSection. Also simplified HighestSetBit algorithm and got rid ofNumberOfSetBits (using HighestSetBit works just fine). 2008-07-31 Jb Evain * StringDictionary.cs: remove ComponentModel bits for NET_2_1. 2008-04-13 Jb Evain * CollectionsUtil.cs: internalize for the 2.1 profile. Merged from the Moonlight 2 branch. 2008-01-07 Juraj Skripsky * NameObjectCollectionBase.cs: Add argument checking in CopyTo, replace use of enumerator by for-loop. Check IsReadOnly in BaseSet() only on the 2.0 profile. 2007-04-29 Ilya Kharmatsky * NameValueCollection.cs: Proper exception handling in several constructors and CopyTo method, under NET_2_0 target. 2007-04-15 Marek Safar * ListDictionary: Removed not used variable. 2007-03-27 Alan McGovern * BitVector32.cs: Bugfix for op_inequality. 2007-01-18 Konstantin Triger * OrderedDictionary.cs: use IEqualityComparer for key comparison. 2006-10-03 Andrew Skiba * ListDictionary.cs: remove unnecessary out parameter 2006-10-02 Gert Driesen * CollectionsUtil.cs: Set eol-style to CRLF. * StringDictionary.cs: Fixed line endings. Set eol-style to CRLF. * StringEnumerator.cs: Set eol-style to CRLF. * OrderDictionary.cs: Set eol-style to CRLF. 2006-09-30 Gert Driesen * OrderedDictionary.cs: IsReadOnly, indexers, Keys and Values should not be virtual. 2006-04-04 Atsushi Enomoto * BitVector32.cs : oops those operators are for BitVector32.Section, not BitVector32 itself. 2006-04-04 Atsushi Enomoto * BitVector32.cs : added operator== and != in 2.0. 2006-03-11 Miguel de Icaza * IOrderedDictionary.cs: Flag GetEnumerator as a "new" method to avoid warning. 2005-11-30 Sebastien Pouliot * OrderedDictionary.cs: OnDeserialization is protected virtual (not private). 2005-11-30 Sebastien Pouliot * BitVector32.cs: Fixed 2.0 API changes and this[int] setter under 2.0 * HybridDictionary.cs: Fixed Contains different behaviour under 2.0. * IOrderedDictionary.cs: Added missing GetEnumarator to the interface. * NameObjectCollectionBase.cs: Fixed 2.0 API changes and serialization. * NameValueCollection.cs: Fixed 2.0 API changes. * OrderedDictionary.cs: Fixed API changes, serialization and this[int] setter. * StringDictionary.cs: Added missing null checks. 2005-10-26 Raja R Harinath * HybridDictionary.cs (is_list): Remove. (inner): Remove 'set' accessor. (HybridDictionary, Switch): Initialize 'list' and 'hashtable' directly. 2005-10-26 Svetlana Zholkovsky * NameObjectCollectionBase.cs ListDictionary.cs HybridDictionary.cs Fix serialization compatibility with .NET 2005-09-01 Raja R Harinath * NameValueCollection.cs (Add): Add a key from the other collection even if its associated value list is empty. Fix regression introduced by last change. 2005-08-30 Jackson Harper * NameValueCollection.cs: Don't crash when we have empty collections. 2005-08-19 Jb Evain * NameObjectCollectionBase (GetEnumerator): Use the virtual modifier only in 2.0 profile. 2005-08-03 Raja R Harinath * ListDictionary.cs: Rewrite to reduce key comparison overhead. Unify all list traversals into FindEntry. (AreEqual): Remove. (FindEntry): Split into two duplicate loops, one when comparer == null, the other when it isn't. Add new out parameter that points to the entry preceding the result. (Add, AddImpl, this []): Update. (Remove): Use FindEntry for traversal. (CopyTo): Add more tests. (ListEntryEnumerator): Simplify. (ListEntryCollection, ListEntryCollectionEnumerator): Likewise. * HybridDictionary.cs: Rewrite to avoid a test on each operation. (list, hashtable): Remove. (inner): New IDictionary field that can hold either a list dictionary or a hashtable. (is_list): New. Notes whether 'inner' holds a list dictionary or not. (Clear): Don't change a hashtable to a list dictionary. 2005-07-25 Lluis Sanchez Gual * NameObjectCollectionBase.cs: Don't throw an exception in OnDeserialization if infoCopy has not been set, which means that the serialization constructor has not been called, because a subclass may completely override that constructor. This fixes bug #75607. 2005-05-09 Gonzalo Paniagua Javier * ProcessStringDictionary.cs: PlatformID for 2.0. 2005-05-08 Gonzalo Paniagua Javier * NameObjectCollectionBase.cs: after 1.0, this uses DefaultInvariant for the hash code provider and comparer, as Ben said. 2005-05-05 Lluis Sanchez Gual * OrderedDictionary.cs: Don't crash when removing an item that is not in the dictionary. 2005-05-05 Gonzalo Paniagua Javier * ProcessStringDictionary.cs: on non-windows system, don't make the hashtable case-insensitive. Fixes bug #74796. 2005-03-23 Lluis Sanchez Gual * OrderedDictionary.cs: Fix bug in item setter. 2005-03-04 Lluis Sanchez Gual * OrderedDictionary.cs: Implemented. 2004-08-16 Duncan Mak * NameObjectCollectionBase.cs: Fix line endings. It's mostly in DOS endings, so I left it at that. (GetEnumerator): Made virtual. 2004-06-14 Sebastien Pouliot * HybridDictionary.cs: Fixed Contains for null argument (again). Return false when dictionary is empty or else throw an ArgumentNullException. * NameObjectCollectionBase.cs: Now use IComparer to compare keys. This completes a TODO and fix Remove in NameValueCollection. * NameValueCollection.cs: Added missing Rank check in CopyTo (Array, int). 2004-06-05 Sebastien Pouliot * HybridDictionary.cs: Fixed Contains for null argument. * NameValueCollection.cs: Fixed Set to remove existing values. Fixed Add(NVC) to throw same exception as MS implementation. 2004-05-24 Lluis Sanchez Gual * StringCollection.cs: Renamed internal variable to make serialization compatible with MS.NET. 2004-03-23 Gonzalo Paniagua Javier * ListDictionary.cs: mark ListEntry as serializable. Thanks to Jan Jaros. 2004-03-15 Gonzalo Paniagua Javier * ProcessStringDictionary.cs: the same as StringDictionary, but doesn't turn keys into lowercase. 2003-11-18 Todd Berman * IOrderedDictionary.cs: new v2 interface 2003-10-21 Gonzalo Paniagua Javier * NameObjectCollectionBase.cs: added serialization support. 2003-09-04 Duncan Mak Patches from Alon Gazit . * BitVector32.cs (CreateSection): Check that the new calculated offset isn't more than 32 and not that the sum of the new offset and the number of set bits is more than 32. (this): Perform bitwise and with the complement of the mask shifted version (~(section.Mask << section.Offset)) and not with the shifted version of the mask's complement (~section.Mask << section.Offset). (this): Currently doesn't return the correct value when the data in the BitVector32 instance is negative. * ListDictionary.cs (CopyTo): If the array is null, it should throw ArgumentNullException. If the index is less than 0, it should throw ArgumentOutOfRangeException. (Remove): Throw ArgumentNullException when the parameter is null. 2003-07-17 Andreas Nahr * StringDictionary.cs: Reworked attributes based on the new Consts scheme 2003-07-10 Andreas Nahr * NameObjectCollectionBase.cs: Implemented a few missing methods, fixed public signatures 2003-07-09 Andreas Nahr * NameObjectCollectionBase.cs: Fixed signature to be CLSCompliant, changed/corrected header * StringCollection.cs: Improved implementation (should perform better) 2003-07-02 Andreas Nahr * BitVector32.cs: Implemented missing method * NameValueCollection.cs: Fixed public signature, Styleguidelined header * StringDictionary.cs: Added missing attribute, fixed visibilities 2003-06-08 Ben Maurer * StringCollection.cs: Rewrote. Now uses ArrayList. Fixes up quite a few Rotor bugs. 2003-03-03 Miguel de Icaza * NameValueCollection.cs: Uncoment constructor, an old MCS bug prevented this from working. Removed test for nullitude of col, as it would have aborted anyways on the dereference in the base constructor call. 2003-01-12 Gonzalo Paniagua Javier * StringCollection.cs: fixed range checks in CopyTo. 2002-11-06 Daniel Stodden * ListDictionary.cs: - Filled in missing CopyTo()s. - No, overwriting an entry should not change the Count <:) 2002-10-31 Gonzalo Paniagua Javier * NameValueCollection.cs: fixed Add (NameValueCollection). 2002-09-03 Gonzalo Paniagua Javier * StringCollection.cs: fixes bug #29791. Thanks to Marcus Urban (mathpup@mylinuxisp.com). 2002-07-22 Tim Coleman * NameObjectCollectionBase.cs: added iterator stubb to NameObjectCollectionBase.KeysCollection 2002-07-05 Gonzalo Paniagua Javier * HybridDictionary.cs: (Remove): fixed. The value is either in the list or in the hash. 2002-06-24 Andrew Birkett * BitVector32.cs: Implemented 'set' section indexer. Check for overly large sections. Factored out some helper methods. 2002-05-11 Lawrence Pit * NameValueCollection.AsStringArray: fixed ArgumentNullException bug. 2002-05-10 Lawrence Pit * HybridDictionary.cs: implemented * CollectionsUtil.cs: implemented * BitVector32.cs: implemeneted * Modified signature of method ListDictionary.GetEnumerator Fri Feb 8 18:02:50 CET 2002 Paolo Molaro * NameObjectCollectionBase.cs, NameValueCollection.cs: tweaks to make it compile and provide the constructor needed by nunitcore. 2002-01-05 Ravi Pratap * BitVector32.cs, ListDictionary.cs : MonoTODO everywhere! * NameObjectCollectionBase.cs, NameValueCollection.cs : Ditto. 2001-08-24 Nick Drochak * NameObjectCollectionBase.cs: Add stub implementation * common.src: Add NameObjectCollectionBase to the build * NameValueCollection.cs: add 'override' to CopyTo(). Maybe this code actually belongs in the superclass. 2001-08-24 Miguel de Icaza * common.src: Add NameValueCollection.cs to the build 2001-08-22 John Barnette * StringDictionary.cs: Initial working implementation. * ListDictionary.cs: Initial working implementation. 2001-07-17 John Barnette * StringCollection.cs: Implemented and working according to spec. * StringIterator.cs: (ADDED) Implemented and working according to spec. * StringCollectionTest.cs: (ADDED) Initial revision contains 17 tests; all of 'em run correctly. More complicated tests to follow. 2001-07-15 Sean MacIsaac * StringCollection.cs: Added so that CodeDom.* would compile.