1 2010-04-09 Raja R Harinath <harinath@hurrynot.org>
3 Don't maintain state in the view
4 * SortedSet.cs (SortedSubSet.count): Remove.
5 (SortedSubSet..ctor): Move counting loop ...
6 (SortedSubSet.Count): ... here.
7 (SortedSubSet.TryAdd, SortedSubSet.TryRemove): Update to changes.
8 (SortedSubSet.GetMin, SortedSubSet.GetMax): Likewise. Use bounds
9 to determine if the view is empty, rather than the count.
11 2010-04-07 Raja R Harinath <harinath@hurrynot.org>
13 Enable set comparision operations on views, and improve performance
14 * RBTree.cs (Bound): New. Returns the greatest lower bound and
15 least upper bound of the given key.
16 (GetSuffixEnumerator): New. Returns an enumerator that starts at
18 (NodeEnumerator): Provide suffix enumerator functionality.
19 * SortedSet.cs (GetEnumerator): Delegate to ...
20 (TryGetEnumerator): ... this. New virtual function.
21 (Enumerator): Provide subset enumeration using RBTree's suffix enumerators.
22 (SortedSubSet.count): New.
23 (SortedSubSet.GetCount): Use it.
24 (SortedSubSet.TryAdd, SortedSubSet.TryRemove): Update count.
25 (SortedSubSet.GetMin, SortedSubSet.GetMax): Use RBTree.Bound().
26 (SortedSubSet.GetEnumerator): Remove.
27 (SortedSubSet.TryGetEnumerator): New. Use ranged enumerators.
29 2010-04-06 Jb Evain <jbevain@novell.com>
31 * SortedSet.cs: implement Count for SortedSubSet.
33 2010-04-05 Raja R Harinath <harinath@hurrynot.org>
35 * SortedSet.cs (IsProperSubsetOf, IsSubsetOf): Implement using ...
36 (is_subset_of): ... new helper.
37 (IsProperSupersetOf, IsSupersetOf): Implement using ...
38 (is_superset_of): ... new helper.
39 (covers, nodups, overlaps): New helpers.
40 (SetEquals): Implement.
41 (Overlaps): Implement using overlaps().
42 (SymmetricExceptWith): Use nodups() helper.
44 2010-04-04 Raja R Harinath <harinath@hurrynot.org>
46 * SortedSet.cs (CheckArgumentNotNull): New helper.
47 (IntersectWith, UnionWith): Implement.
48 (ExceptWith, SymmetricExceptWith): Likewise.
49 (SortedSubSet.IntersectWith): Implement override.
51 * RBTree.cs (do_remove): Ensure the node returned is suitable for
54 2010-04-02 Jb Evain <jbevain@novell.com>
56 * SortedSet.cs: implement Mix and Max for subsets.
58 2010-04-02 Jb Evain <jbevain@novell.com>
60 * SortedSet.cs: implement GetViewBetween.
62 2010-04-02 Jb Evain <jbevain@novell.com>
64 * SortedSet.cs: optimize Reverse. Add a virtual TryAdd and TryRemove
65 to override in sub trees.
67 2010-04-02 Jb Evain <jbevain@novell.com>
69 * SortedSet.cs: implement Min and Max.
71 2010-04-02 Jb Evain <jbevain@novell.com>
73 * SortedSet.cs: implement RemoveWhere.
75 2010-04-02 Jb Evain <jbevain@novell.com>
77 * SortedSet.cs: implement Reverse.
79 2010-04-01 Jb Evain <jbevain@novell.com>
81 * SortedSet.cs: fix API.
83 2010-04-01 Jb Evain <jbevain@novell.com>
85 * SortedSet.cs: add new SortedSet type in .net 4.0
87 2010-03-03 Miguel de Icaza <miguel@novell.com>
89 * RBTree.cs: Make these serializable, should fix the serialization
90 across appdomains of SortedDictionaries
92 2010-03-11 Sebastien Pouliot <sebastien@ximian.com>
94 * ISet.cs: Add NET_2_1 since this is part of SL4
96 2009-12-01 Jb Evain <jbevain@novell.com>
98 * Stack.cs (Enumerator.Dispose): tag the enumerator as finished
101 2009-11-26 Marek Safar <marek.safar@gmail.com>
103 * LinkedList.cs: Allocate less.
105 2009-11-25 Jb Evain <jbevain@novell.com>
107 * Queue.cs (Enqueue): deal with the case where the tail
108 is off the array when deciding to enlarge the capacity.
110 2009-11-25 Jb Evain <jbevain@novell.com>
112 * Queue.cs (ICollection.CopyTo): fix typo, remove code duplication.
114 2009-11-02 Miguel de Icaza <miguel@novell.com>
116 * ISet.cs: Added new interface.
118 2009-10-20 Marek Safar <marek.safar@gmail.com>
120 * SortedList.cs, LinkedList.cs, Queue.cs, Stack.cs,
121 SortedDictionary.cs: Improve debugging experience.
123 2009-07-31 Raja R Harinath <harinath@hurrynot.org>
125 * RBTree.cs (NodeEnumerator.check_current): New helper.
126 (NodeEnumerator.Current): Don't check invariants.
127 * SortedDictionary.cs (Enumerator.Current): Likewise.
128 (ValueCollection.Enumerator.Current): Likewise.
129 (KeyCollection.Enumerator.Current): Likewise.
131 2009-07-26 Miguel de Icaza <miguel@novell.com>
133 * Stack.cs: Check arguments.
135 2009-07-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
137 * SortedList.cs: the IComparar.Compare arguments were reversed.
138 Fixes bug #521750. Patch by Kevin Fitzgerald.
140 2009-05-10 Andy Hume <andyhume32@yahoo.co.uk>
142 * LinkedList.cs: Add null check. Fixes #481621.
144 2009-03-11 Zoltan Varga <vargaz@gmail.com>
146 * SortedList.cs: Add version checking to the Key/Value enumerators +
147 implement support for Reset (). Fixes #483985.
149 2009-05-06 Pia Eriksson <pe@hallerud.se>
151 * SortedList.cs: Handle Count == 0 in CopyTo correcly
152 * SortedDictionary.cs: Handle Count == 0 in CopyTo correcly
154 2007-11-15 Roei Erez <roeie@mainsoft.com>
156 * Stack.cs: Performance improvement in the case where the stack is popped
157 until empty. Changed the condition for resizing the array, and instead of
158 check for zero size, check if the inner array is null.
160 2007-11-15 Jb Evain <jbevain@novell.com>
162 * LinkedList.cs: ifdef out manually the Serialization part of the
163 LinkedList.Enumerator. As it is a struct, the field SerializationInfo
164 have to be assigned in the default constructor, and the tuner cannot
165 remove that. Fixes #341938 for real.
167 2007-10-09 Raja R Harinath <rharinath@novell.com>
169 * RBTree.cs (get_Item, do_remove): Remove redundant code.
171 2007-08-20 Jb Evain <jbevain@novell.com>
173 * SortedList.cs: don't crash in ListKeys and ListValues
174 when CopyTo targets an empty array, and that the
175 sorted list is empty. Fixes #82492.
177 2007-05-08 Raja R Harinath <rharinath@novell.com>
179 Avoid unnecessary allocation on indexer access
180 * SortedDictionary.cs (NodeHelper): Rename from NodeComparer.
181 (NodeHelper.CreateNode): New.
182 (Item.set): Move responsibility of creating new nodes to
184 * RBTree.cs (INodeHelper): Rename from INodeComparer.
185 (INodeHelper.CreateNode): New.
186 (Intern): Use it to create a new node if no node is passed in.
188 2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
190 * RBTree.cs: for TARGET_JVM used Thread Local Storage
191 istead Thread-Relative Static Fields
193 2007-05-02 Raja R Harinath <rharinath@novell.com>
195 * RBTree.cs (Enumerator.Current): Remove nullref.
197 * SortedDictionary.cs (ICollection.Contains): Use EqualityComparer
198 for comparing the value field.
200 * RBTree.cs (do_remove): Remove some redundant assignments/checks.
201 (NodeEnumerator): Simplify. Keep track of a list of
202 right-pennants that need to be traversed next, rather than
203 comparing parent pointers.
205 2007-05-02 Raja R Harinath <harinath@gmail.com>
207 Make add and remove operations O(log n).
208 * SortedDictionary.cs: Rewrite to use the red-black tree
209 implementation from RBTree.cs.
210 * RBTree.cs: Some more refactoring. Rename Insert() to Intern(),
211 and modify semantics slightly. Replace Contains() with Lookup().
213 2007-04-30 Raja R Harinath <rharinath@novell.com>
215 * RBTree.cs: Refactor to reduce generics code.
217 2007-04-30 Raja R Harinath <harinath@gmail.com>
219 * RBTree.cs: New red-black tree implementation for use with
222 2007-04-19 Gert Driesen <drieseng@users.sourceforge.net>
224 * Queue.cs: Fixed binary serialization, based on patch provided by
225 Lionel Cuir. Fixes TrimExcess to use SetCapacity, before it was not
226 updating _head which could lead to IndexOutOfRangeException.
227 * Stack.cs: Fixed binary serialization, based on patch provided by
228 Lionel Cuir. In Pop, clear entry from array to help GC.
230 2007-03-27 Alan McGovern <alan.mcgovern@gmail.com>
232 * Queue.cs: Removed wrong call to version++
233 * Stack.cs: Removed wrong call to version++
235 2006-09-30 Gert Driesen <drieseng@users.sourceforge.net>
237 * SortedList.cs: Count property, indexer and Clear method should not
238 be virtual. Removed unnecessary explicit interface implementation of
239 Add (TKey, TValue) and Remove (TKey, TValue).
240 * Queue.cs: Marked Enumerator as Serializable.
241 * Stack.cs: Marked Stack <T> and Enumerator as serializable.
243 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
245 * Stack.cs: TARGET_JVM
247 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
249 * SortedDictionary.cs : new file. The original code is mostly
252 2006-03-11 Miguel de Icaza <miguel@novell.com>
254 * Queue.cs: Flag as serializable.
256 * LinkedList.cs (OnDeserialization): Fix signature.
258 * SortedList.cs: Implement explicitly a few methods that were
259 flagged by corcompare.
261 2005-11-10 Zoltan Varga <vargaz@gmail.com>
263 * SortedList.cs Queue.cs Stack.cs: Implement TrimExcess methods.
265 * SortedList.cs: Fix build.
267 * Stack.cs SortedList.cs LinkedList.cs: Update to net 2.0 RTM.
269 2005-11-09 Zoltan Varga <vargaz@gmail.com>
271 * SortedList.cs: New file.
273 2005-09-04 David Waite <mass@akuma.org>
275 * LinkedList.cs, LinkedListNode.cs: added implementation of LinkedList<T>
277 2005-08-08 Kamil Skalski <nazgul@nemerle.org>
279 * Queue.cs, Stack.cs: remove implementation of ICollection<T>,
280 since it is no longer in b2 API
282 2005-06-20 David Waite <mass@akuma.org>
284 * Collection.cs, ReadOnlyCollection.cs: removed as they are no longer in the b2 API
286 2005-05-13 Atsushi Enomoto <atsushi@ximian.com>
288 * Queue.cs, Stack.cs: moved from mscorlib.dll
290 2005-02-35 Carlos Alberto Cortez <calberto.cortez@gmail.com>
292 * Collections.cs: Changed the code inside IndexOf, for
293 the use of Array.IndexOf<>, to keep clean the code.
295 2004-11-17 Carlos Alberto Cortez Guevara <carlos@unixmexico.org>
297 * Collections.cs: Avoid the call to Array.Clear () in RemoveItem (),
298 now we only assign the last element (the deleted one) to its default
301 2004-09-20 Gert Driesen <drieseng@users.sourceforge.net>
303 * ReadOnlyCollection.cs: Moved over from corlib
304 * Collection.cs: Moved over from corlib