SortedSet: Complete implementation of more methods
[mono.git] / mcs / class / System / System.Collections.Generic / ChangeLog
1 2010-04-05  Raja R Harinath  <harinath@hurrynot.org>
2
3         * SortedSet.cs (IsProperSubsetOf, IsSubsetOf): Implement using ...
4         (is_subset_of): ... new helper.
5         (IsProperSupersetOf, IsSupersetOf): Implement using ...
6         (is_superset_of): ... new helper.
7         (covers, nodups, overlaps): New helpers.
8         (SetEquals): Implement.
9         (Overlaps): Implement using overlaps().
10         (SymmetricExceptWith): Use nodups() helper.
11
12 2010-04-04  Raja R Harinath  <harinath@hurrynot.org>
13
14         * SortedSet.cs (CheckArgumentNotNull): New helper.
15         (IntersectWith, UnionWith): Implement.
16         (ExceptWith, SymmetricExceptWith): Likewise.
17         (SortedSubSet.IntersectWith): Implement override.
18
19         * RBTree.cs (do_remove): Ensure the node returned is suitable for
20         re-insertion.
21
22 2010-04-02  Jb Evain  <jbevain@novell.com>
23
24         * SortedSet.cs: implement Mix and Max for subsets.
25
26 2010-04-02  Jb Evain  <jbevain@novell.com>
27
28         * SortedSet.cs: implement GetViewBetween.
29
30 2010-04-02  Jb Evain  <jbevain@novell.com>
31
32         * SortedSet.cs: optimize Reverse. Add a virtual TryAdd and TryRemove
33         to override in sub trees.
34
35 2010-04-02  Jb Evain  <jbevain@novell.com>
36
37         * SortedSet.cs: implement Min and Max.
38
39 2010-04-02  Jb Evain  <jbevain@novell.com>
40
41         * SortedSet.cs: implement RemoveWhere.
42
43 2010-04-02  Jb Evain  <jbevain@novell.com>
44
45         * SortedSet.cs: implement Reverse.
46
47 2010-04-01  Jb Evain  <jbevain@novell.com>
48
49         * SortedSet.cs: fix API.
50
51 2010-04-01  Jb Evain  <jbevain@novell.com>
52
53         * SortedSet.cs: add new SortedSet type in .net 4.0
54
55 2010-03-03  Miguel de Icaza  <miguel@novell.com>
56
57         * RBTree.cs: Make these serializable, should fix the serialization
58         across appdomains of SortedDictionaries
59
60 2010-03-11  Sebastien Pouliot  <sebastien@ximian.com>
61
62         * ISet.cs: Add NET_2_1 since this is part of SL4
63
64 2009-12-01  Jb Evain  <jbevain@novell.com>
65
66         * Stack.cs (Enumerator.Dispose): tag the enumerator as finished
67         upon Dispose.
68
69 2009-11-26  Marek Safar <marek.safar@gmail.com>
70
71         * LinkedList.cs: Allocate less.
72
73 2009-11-25  Jb Evain  <jbevain@novell.com>
74
75         * Queue.cs (Enqueue): deal with the case where the tail
76         is off the array when deciding to enlarge the capacity.
77
78 2009-11-25  Jb Evain  <jbevain@novell.com>
79
80         * Queue.cs (ICollection.CopyTo): fix typo, remove code duplication.
81
82 2009-11-02  Miguel de Icaza  <miguel@novell.com>
83
84         * ISet.cs: Added new interface.
85
86 2009-10-20  Marek Safar <marek.safar@gmail.com>
87
88         * SortedList.cs, LinkedList.cs, Queue.cs, Stack.cs,
89         SortedDictionary.cs: Improve debugging experience.
90
91 2009-07-31  Raja R Harinath  <harinath@hurrynot.org>
92
93         * RBTree.cs (NodeEnumerator.check_current): New helper.
94         (NodeEnumerator.Current): Don't check invariants.
95         * SortedDictionary.cs (Enumerator.Current): Likewise.
96         (ValueCollection.Enumerator.Current): Likewise.
97         (KeyCollection.Enumerator.Current): Likewise.
98
99 2009-07-26  Miguel de Icaza  <miguel@novell.com>
100
101         * Stack.cs: Check arguments.
102
103 2009-07-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
104
105         * SortedList.cs: the IComparar.Compare arguments were reversed.
106         Fixes bug #521750. Patch by Kevin Fitzgerald.
107
108 2009-05-10  Andy Hume  <andyhume32@yahoo.co.uk>
109
110         * LinkedList.cs: Add null check. Fixes #481621.
111
112 2009-03-11  Zoltan Varga  <vargaz@gmail.com>
113
114         * SortedList.cs: Add version checking to the Key/Value enumerators +
115         implement support for Reset (). Fixes #483985.
116
117 2009-05-06  Pia Eriksson  <pe@hallerud.se>
118
119         * SortedList.cs: Handle Count == 0 in CopyTo correcly
120         * SortedDictionary.cs: Handle Count == 0 in CopyTo correcly
121
122 2007-11-15  Roei Erez  <roeie@mainsoft.com>
123
124         * Stack.cs: Performance improvement in the case where the stack is popped
125         until empty. Changed the condition for resizing the array, and instead of
126         check for zero size, check if the inner array is null.
127
128 2007-11-15  Jb Evain  <jbevain@novell.com>
129
130         * LinkedList.cs: ifdef out manually the Serialization part of the
131         LinkedList.Enumerator. As it is a struct, the field SerializationInfo
132         have to be assigned in the default constructor, and the tuner cannot
133         remove that. Fixes #341938 for real.
134
135 2007-10-09  Raja R Harinath  <rharinath@novell.com>
136
137         * RBTree.cs (get_Item, do_remove): Remove redundant code.
138
139 2007-08-20  Jb Evain  <jbevain@novell.com>
140
141         * SortedList.cs: don't crash in ListKeys and ListValues
142         when CopyTo targets an empty array, and that the
143         sorted list is empty. Fixes #82492.
144
145 2007-05-08  Raja R Harinath  <rharinath@novell.com>
146
147         Avoid unnecessary allocation on indexer access
148         * SortedDictionary.cs (NodeHelper): Rename from NodeComparer.
149         (NodeHelper.CreateNode): New.
150         (Item.set): Move responsibility of creating new nodes to
151         RBTree.Intern.
152         * RBTree.cs (INodeHelper): Rename from INodeComparer.
153         (INodeHelper.CreateNode): New.
154         (Intern): Use it to create a new node if no node is passed in.
155
156 2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
157
158         * RBTree.cs: for TARGET_JVM used Thread Local Storage 
159         istead Thread-Relative Static Fields 
160
161 2007-05-02  Raja R Harinath  <rharinath@novell.com>
162
163         * RBTree.cs (Enumerator.Current): Remove nullref.
164
165         * SortedDictionary.cs (ICollection.Contains): Use EqualityComparer
166         for comparing the value field.
167
168         * RBTree.cs (do_remove): Remove some redundant assignments/checks.
169         (NodeEnumerator): Simplify.  Keep track of a list of
170         right-pennants that need to be traversed next, rather than
171         comparing parent pointers.
172
173 2007-05-02  Raja R Harinath  <harinath@gmail.com>
174
175         Make add and remove operations O(log n).
176         * SortedDictionary.cs: Rewrite to use the red-black tree
177         implementation from RBTree.cs.
178         * RBTree.cs: Some more refactoring.  Rename Insert() to Intern(),
179         and modify semantics slightly.  Replace Contains() with Lookup().
180
181 2007-04-30  Raja R Harinath  <rharinath@novell.com>
182
183         * RBTree.cs: Refactor to reduce generics code.
184
185 2007-04-30  Raja R Harinath  <harinath@gmail.com>
186
187         * RBTree.cs: New red-black tree implementation for use with
188         SortedDictionary.
189
190 2007-04-19  Gert Driesen  <drieseng@users.sourceforge.net>
191
192         * Queue.cs: Fixed binary serialization, based on patch provided by
193         Lionel Cuir. Fixes TrimExcess to use SetCapacity, before it was not 
194         updating _head which could lead to IndexOutOfRangeException.
195         * Stack.cs: Fixed binary serialization, based on patch provided by
196         Lionel Cuir. In Pop, clear entry from array to help GC.
197
198 2007-03-27  Alan McGovern <alan.mcgovern@gmail.com>
199
200         * Queue.cs: Removed wrong call to version++
201         * Stack.cs: Removed wrong call to version++
202
203 2006-09-30  Gert Driesen  <drieseng@users.sourceforge.net>
204
205         * SortedList.cs: Count property, indexer and Clear method should not 
206         be virtual. Removed unnecessary explicit interface implementation of
207          Add (TKey, TValue) and Remove (TKey, TValue).
208         * Queue.cs: Marked Enumerator as Serializable.
209         * Stack.cs: Marked Stack <T> and Enumerator as serializable.
210
211 2006-09-28  Andrew Skiba  <andrews@mainsoft.com>
212
213         * Stack.cs: TARGET_JVM
214
215 2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>
216
217         * SortedDictionary.cs : new file. The original code is mostly
218           from Kazuki Oikawa.
219
220 2006-03-11  Miguel de Icaza  <miguel@novell.com>
221
222         * Queue.cs: Flag as serializable.
223
224         * LinkedList.cs (OnDeserialization): Fix signature. 
225
226         * SortedList.cs: Implement explicitly a few methods that were
227         flagged by corcompare. 
228
229 2005-11-10  Zoltan Varga  <vargaz@gmail.com>
230
231         * SortedList.cs Queue.cs Stack.cs: Implement TrimExcess methods.
232         
233         * SortedList.cs: Fix build.
234
235         * Stack.cs SortedList.cs LinkedList.cs: Update to net 2.0 RTM.
236
237 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
238
239         * SortedList.cs: New file.
240
241 2005-09-04  David Waite  <mass@akuma.org>
242
243         * LinkedList.cs, LinkedListNode.cs: added implementation of LinkedList<T>
244
245 2005-08-08  Kamil Skalski  <nazgul@nemerle.org>
246
247         * Queue.cs, Stack.cs: remove implementation of ICollection<T>,
248         since it is no longer in b2 API
249
250 2005-06-20  David Waite  <mass@akuma.org>
251
252         * Collection.cs, ReadOnlyCollection.cs: removed as they are no longer in the b2 API
253
254 2005-05-13  Atsushi Enomoto  <atsushi@ximian.com>
255
256         * Queue.cs, Stack.cs: moved from mscorlib.dll
257
258 2005-02-35  Carlos Alberto Cortez <calberto.cortez@gmail.com>
259
260         * Collections.cs: Changed the code inside IndexOf, for
261         the use of Array.IndexOf<>, to keep clean the code.
262         
263 2004-11-17  Carlos Alberto Cortez Guevara <carlos@unixmexico.org>
264
265         * Collections.cs: Avoid the call to Array.Clear () in RemoveItem (),
266         now we only assign the last element (the deleted one) to its default
267         value.
268         
269 2004-09-20  Gert Driesen <drieseng@users.sourceforge.net>
270
271         * ReadOnlyCollection.cs: Moved over from corlib
272         * Collection.cs: Moved over from corlib