1 2003-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3 * Queue.cs: patch from Carlos Barcenilla.
5 - method: ICollection.Clone()
6 - Optimized. Removed unneeded instructions.
7 - method: public static Queue Synchronized (Queue queue)
8 - ArgumentNullException.ParamName must be "queue", not null.
9 - method: public virtual void TrimToSize()
10 - Must increment modCount.
12 private class SyncQueue
13 - method: public override object Clone ()
14 - Must return a synchronized (SyncStack) instance.
15 - method: public override void TrimToSize ()
18 2003-11-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
20 * IEnumerator.cs: Added missing attribute
22 2003-11-12 Miguel de Icaza <miguel@ximian.com>
24 * CaseInsensitiveComparer.cs: Add missing method.
26 2003-11-10 Zoltan Varga <vargaz@freemail.hu>
28 * Stack.cs: Applied patch from Carlos A. Barcenilla to fix minor
31 2003-11-03 Lluis Sanchez Gual <lluis@ximian.com>
33 * SortedList.cs: Added [Serializable] to Slot class. This fixes bug #50484.
35 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
37 * System.Collections/Hashtable.cs: patch from Carlos A.
38 Barcenilla (barce@frlp.utn.edu.ar) that includes some fixes for
39 Hashtable + NUnit2 tests.
41 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
43 * Queue.cs: nullify the array in Clear.
45 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
47 * Hashtable.cs: Remove empty static constructor since it prevents this
48 class from being beforefieldinit.
50 2003-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
52 * CaseInsensitiveHashCodeProvider.cs: small speed improvement.
54 2003-08-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
56 * Stack.cs: patch by JoergR@voelcker.com (Joerg Rosenkranz) that fixes
59 2003-08-20 Duncan Mak <duncan@ximian.com>
61 * Hashtable.cs (PutImpl): Fix my previous checkin, see details
64 I really hope I don't mess up this time, because, if I do again,
65 it will be really embarrassing.
67 2003-08-17 Duncan Mak <duncan@ximian.com>
69 * Hashtable.cs (PutImpl): Patch from Luca Barbieri <lb@lb.ods.org>.
70 Currently Hashtable.PutImpl has an incorrect test which causes the
71 key chain search to terminate as soon as a free slot is found,
72 causing key duplication.
74 This fixes bug #47692.
76 2003-08-11 Duncan Mak <duncan@ximian.com>
78 * DictionaryBase.cs: Applied patch from Carlos Barcenilla
79 (barce@frlp.utn.edu.ar).
81 (Idictionary.Add): Added OnValidate, and undo the transaction if
82 OnInsertCompleteFails.
84 (Indexer set): MS Implementation does not call OnInsert and undoes
85 if OnSetComplete throws an exception
86 (Indexer get): return value is obtained after calling OnGet.
88 (IDictionary.Remove): Call to OnValidate added. If key does not
89 exists calls OnValidate, OnRemove and OnRemoveComplete.
91 (protected IDictionary Dictionary get): Should return itself, not
94 This fixes bug #47460.
96 2003-08-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
98 * CollectionBase.cs: applied patch from Carlos Barcenilla
99 (barce@frlp.utn.edu.ar).
101 2003-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
103 * ArrayList.cs: added / so that gvim syntax highlight doesn't go crazy.
104 * CollectionBase.cs: fixed several bugs reported by Carlos Barcenilla
105 (barce@frlp.utn.edu.ar). Most of the patch is also his.
107 2003-07-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
109 * ArrayList.cs: fixed EnsureCapacity when m_Data.Length is 0.
111 2003-07-29 Miguel de Icaza <miguel@ximian.com>
113 * ArrayList.cs: Deployed ArrayList from Tum; Fixed iterator to
114 allow nulls, and inline a few calls to make profiling more useful.
116 2003-07-24 Miguel de Icaza <miguel@ximian.com>
118 * ArrayList.cs: Removed MonoTODO.
120 2003-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
122 * Hashtable.cs: made SynchedHashtable serializable. Fixes bug #45918.
123 Thanks to JoergR@voelcker.com (Joerg Rosenkranz).
125 2003-06-27 Duncan Mak <duncan@ximian.com>
127 * Hashtable.cs: Patch from PAF@design.ru, GetEnumerator should be
128 returning DictionaryEntrys, instead of just the Key of the table.
130 2003-06-26 Lluis Sanchez Gual <lluis@ximian.com>
132 * Hashtable.cs: Fixed bug when serializing and deserializing
133 a hashtable from which one element has been deleted. The Object instance
134 used as a removed marker is not detected as a such, since the
135 serializer creates a different instace.
137 2003-06-13 Herve Poussineau <hpoussineau@fr.st>
139 * SortedList.cs: Can enumerate on DictionaryEntries, not only on
140 keys on values. Enumerate by default on DictionaryEntries.
142 2003-06-12 Duncan Mak <duncan@ximian.com>
144 * Hashtable.cs (constructor):
145 if loadFactor equals Single.NaN, then throw an
146 ArgumentOutOfRangeException.
148 if we set capacity to be too big (ie. capacity / loadFactor is
149 greater than Int32.MaxValue), then we throw an ArgumentException.
151 2003-06-11 Duncan Mak <duncan@ximian.com>
153 * SortedList.cs: Oi! What a mess.
155 If the list was constructed using the null-param constructor, and
156 it tries to set it to a size lower than the default, let it do so.
158 If the list was constructed with a specific size, and it tries to
159 set it to a size lower than the specified size, set it to the
162 (IndexOfValue): Clean up the code somewhat, make it allow for
165 2003-06-08 Ben Maurer <bmaurer@users.sourceforge.net>
166 * ArrayList.cs, Hashtable.cs, SortedList.cs: Enumerator fixes, error
169 2003-06-07 Ben Maurer <bmaurer@users.sourceforge.net>
170 * Stack.cs: Contains (null) works correctly. We never have the
171 array sized less than 16, so that the doubling logic works no
172 matter what. The enumerator is IClonable, like in ms. The
173 Enumerator correctly throws an exception if Current is called
174 before the enumerator is started. We now pass all the Rotor tests
177 2003-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
179 * Stack.cs: fixed Clone ().
181 2003-06-04 Ben Maurer <bmaurer@users.sourceforge.net>
182 * DictionaryEntry.cs: Throw exception if key == null. Fixes Rotor
185 2003-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
187 * ArrayList.cs: nullify the array in Clear ().
188 * Queue.cs: nullify the array in Dequeue ().
189 * Stack.cs: nullify the array in Pop ().
191 2003-06-02 Ben Maurer <bmaurer@users.sourceforge.net>
192 * Queue.cs: Added argument checking in constructors according to
193 specs. Also changed default size to 32 as required by the specs.
195 2003-05-31 Ben Maurer <bmaurer@users.sourceforge.net>
196 * BitArray.cs: Rewrote, as it was failing most of the Rotor
197 tests. It now passes them 100%. Also fixes bug #43667.
199 2003-05-03 Ben Maurer <bmaurer@users.sourceforge.net>
201 Made ArrayList.GetRange () make a wrapper around the array list, like Microsoft does. Fixes bug #39724.
203 2003-05-03 Ben Maurer <bmaurer@users.sourceforge.net>
205 Added methods to support IList wrappers
207 2003-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
209 * ArrayList.cs: patch from bernard@ugsolutions.com (Bernie Solomon)
210 that fixes bug #41684.
212 2003-04-15 Eduardo Garcia Cebollero <kiwnix@yahoo.es>
214 * CaseInsensitiveComparerTest.cs: Fixed Compare Method (now works
215 like MS.NET) and implemented the
216 CaseInsensitiveComparerTest(culture) constructor.
218 2003-03-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
220 * Queue.cs: fixed bug #39046.
222 2003-02-15 Pedro MartÃnez Juliá <yoros@wanadoo.es>
224 * Hashtable.cs: Make hashtable serializable (at least with binary
225 formatter). This process was started by the Hashtable maintainer.
227 2003-02-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
229 * ArrayList.cs: fixed setSize (!).
231 2003-01-31 Zoltan Varga <vargaz@freemail.hu>
233 * ArrayList.cs (RemoveAt): duplicated the the code from RemoveRange
234 here, since RemoveAt raises a different exception than RemoveRange
235 when the index is out-of-range. Fixes the ArrayList unit tests.
237 * ArrayList.cs (RemoveRange): fixed indentation.
239 2003-01-12 Varga Zoltan <vargaz@freemail.hu>
241 * ArrayList.cs (RemoveRange): Patch for allowing zero-size
242 removal at the end of a list. It also cleans up the argument
243 checking code so the raised exceptions have the same message as
246 2003-01-10 Duncan Mak <duncan@ximian.com>
248 * ArrayList.cs (Insert): Patch from Zoltan
249 (Zoltan.2.Varga@nokia.com).
251 2002-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
253 * Hashtable.cs: add the key to the error message when
256 2002-10-15 Vladimir Vukicevic <vladimir@pobox.com>
258 * Queue.cs: update new capacity in grow(), preventing queue from
259 constantly looping over old elements in Dequeue(). Also use
260 capacity instead of contents.Length in Enqueue().
262 2002-09-24 Nick Drochak <ndrochak@gol.com>
264 * ArrayList.cs: Make enumerator throw exception if the ArrayList is
265 mutated (Insert, Delete, etc.). Also, fix bug in InsertRange() when
266 this was passed as parameter.
268 2002-08-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
270 * ArrayList.cs: fixed bug #29658.
272 2002-08-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
276 * CaseInsensitiveComparer.cs:
277 * CaseInsensitiveHashCodeProvider.cs:
279 * Queue.cs: misc. fixes based on class status page.
281 2002-07-22 Tim Coleman <tim@timcoleman.com>
282 * CaseInsensitiveHashCodeProvider.cs: Added missing constructor
283 which was breaking System.Web build on linux
285 2002-07-05 Sergey Chaban <serge@wildwestsoftware.com>
287 * SortedList.cs: Implemented thread-safe wrapper. Changed some
290 2002-07-02 Nick Drochak <ndrochak@gol.com>
292 * SortedList.cs: Constructors should use the capacity given regardless
293 how small. After a Clear() the Capacit should be 16. Since a Dictionary
294 might be used in the constructor, make sure we trap exceptions thrown
295 by the Comparer, like in Add().
297 2002-06-30 Nick Drochak <ndrochak@gol.com>
299 * SortedList.cs: Many fixed. A lot of checking for null and throwing
300 exceptions. A few logic bugs fixed as well
302 2002-06-25 Nick Drochak <ndrochak@gol.com>
304 * Queue.cs (CopyTo): Fix logic for copying the circular array.
305 (Enqueue): Use actual length of array to determine when to grow
306 (QueueEnumerator) Fixed Current to use array length, not capacity, and
307 fixed off-by-one errror in MoveNext().
309 Tue Jun 4 13:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
311 * ArrayList.cs: fixed RemoveAt() implementation.
313 2002-05-27 Nick Drochak <ndrochak@gol.com>
315 * ArrayList.cs (LastIndexOf): Return -1 if searching for null, also
316 fix check of parameters sent to make sure we don't search beyond the
317 beginning of the list.
318 (ListWrapper): Throw exception if called with null.
319 We now pass all unit tests.
321 2002-05-23 Duncan Mak <duncan@ximian.com>
323 * ArrayList.cs (Wrapper): Preliminary implementation of
324 ArrayList.Wrapper (IList).
326 2002-05-22 Martin Baulig <martin@gnome.org>
328 * ArrayList.cs: Made count, capacity and dataArray the first three
329 fields in the class. They're read by the reflection library.
331 2002-05-21 Lawrence Pit <loz@cable.a2000.nl>
333 * ArrayList.cs: Fixed bug where a capacity of 0 could be reached,
334 thereby causing problems when trying to add elements.
336 2002-05-06 Duncan Mak <duncan@ximian.com>
338 * Queue.cs (TrimToSize): Implemented.
340 2002-05-05 Nick Drochak <ndrochak@gol.com>
342 * ArrayList.cs: Throw RankException when constructing from a
343 multi-dimensional array. Confirmed behavior from MS.NET
345 Thu May 2 15:18:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
347 * ArrayList.cs: make mcs compile again: it's allowed to
348 call arraylist.CopyTo(array, 0) when the length of the array
351 Wed May 1 17:05:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
353 * SortedList.cs: fix RemoveAt () to use the correct length in
356 2002-05-01 Nick Drochak <ndrochak@gol.com>
358 * ArrayList.cs (Add & AddRange) : Throw exceptions where needed.
360 2002/05/01 Nick Drochak <ndrochak@gol.com>
362 * ArrayList.cs (CopyTo) : Check parameters and throw exceptions
365 2002/04/30 Nick Drochak <ndrochak@gol.com>
367 * ArrayList.cs (Clear) : Throw exception if ReadOnly or FixedSize.
368 (InsertRange) : Implement.
369 (SetRange) : Implement.
371 2002-04-30 Nick Drochak <ndrochak@gol.com>
373 * ArrayList.cs (TrimToSize) : Implement.
375 2002-04-28 Duncan Mak <duncan@ximian.com>
377 * ArrayList.cs (InsertRange):
380 (TrimToSize): Throw exceptions where needed.
382 2002-04-29 Nick Drochak <ndrochak@gol.com>
384 * Hashtable.cs (CopyTo): Throw exceptions where needed.
386 2002-04-28 Duncan Mak <duncan@ximian.com>
388 * ArrayList.cs (ReadOnly):
389 (IList.ReadOnly): Implemented.
392 (IList.Synchronized): Implemented.
395 (IList.FixedSize): Implemented.
397 2002-03-24 Duncan Mak <duncan@ximian.com>
399 * SortedList.cs (Synchronized): Stubbed out a missing method
400 pointed out by Jakk Simm's test suite.
402 2002-03-14 Nick Drochak <ndrochak@gol.com>
404 * ArrayList.cs (FixedSize(ArrayList)): should return an ArrayList. The
405 other FixedSize() methods returns an IList.
407 2002-03-13 Duncan Mak <duncan@ximian.com>
409 * ArrayList.cs (FixedSize): Changed the return type to IList if
410 the argument is an IList.
411 (Synchronized): Ditto here.
413 2002-03-08 Sergey Chaban <serge@wildwestsoftware.com>
415 * Hashtable.cs: Fixed ToPrime () bug. Removed ALLOC_GRAIN.
416 Removed unused code from static constructor.
417 GetObjectData () - Version is the same as modificationCount.
419 2002-02-20 Nick Drochak <ndrochak@gol.com>
421 * ArrayList.cs: Add MonoTODO's where necessary. Fix bugs discovered
422 by Bucky's tests. Implement a couple of things that were left undone.
424 Mon Feb 11 19:49:25 CET 2002 Paolo Molaro <lupus@ximian.com>
426 * ArrayList.cs: Dick's fix to contructor.
428 2002-02-07 Duncan Mak <duncan@ximian.com>
430 * Hashtable.cs: Implemented parts of the ISerializable
431 interface. GetObjectData () is good, but serialization constructor
432 needs some more love.
434 Sat Jan 5 15:56:54 CET 2002 Paolo Molaro <lupus@ximian.com>
436 * Hashtable.cs: the IDictionaryEnumerator returns DictionaryEntries.
438 2002-01-04 Ravi Pratap <ravi@ximian.com>
440 * Correct name to MonoTODO everywhere.
442 2002-01-04 Ravi Pratap <ravi@ximian.com>
444 * ArrayList.cs : Setting an index does not implicitly
445 extend the arraylist : remove FIXME.
447 Decorate incomplete elements with the TODO attribute.
449 * BitArray.cs : Insert TODO attributes where appropriate.
451 * CaseInsensitiveHashcodeProvider.cs: Ditto.
453 * Hashtable.cs, SortedList.cs : Ditto.
455 Thu Dec 13 20:17:08 CET 2001 Paolo Molaro <lupus@ximian.com>
457 * ArrayList.cs: implemented AddRange(), CopyTo().
459 2001-11-19 Miguel de Icaza <miguel@ximian.com>
461 * DictionaryBase.cs: Implemented.
463 Wed Nov 14 16:45:49 CET 2001 Paolo Molaro <lupus@ximian.com>
465 * ArrayList.cs: implement ArrayListEnumerator.
466 * Hashtable.cs: hardcode the prime number table.
468 2001-11-06 Nick Drochak <ndrochak@gol.com>
469 * Queue.cs: Fixes from Ricardardo. QueueTest also updated.
471 2001-11-04 Nick Drochak <ndrochak@gol.com>
472 * Queue.cs: Fixed small syntax errors that were preventing the compile.
473 I changed the build file to include Queue.cs as well.
475 2001-11-04 Nick Drochak <ndrochak@gol.com>
476 * ArrayList.cs: Fixed "off by one" error when shifting left the array when
479 * CollectionBase.cs: Added OnValidate(), OnRemove() and OnRemoveComplete()
480 hook methods to the RemoveAt() method.
482 2001-11-04 Nick Drochak <ndrochak@gol.com>
483 * ArrayList.cs: Added private enumerator class and make GetEnumerator()
484 methods return an instance of it.
486 Tue Sep 25 18:52:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
488 * ArrayList.cs: fix Insert () to check capacity, not count.
490 Tue Sep 25 16:54:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
492 * DictionaryEntry.cs: added.
494 2001-08-10 Dietmar Maurer <dietmar@ximian.com>
496 * common.src: removed duplicate entries
498 2001-08-08 Nick Drochak <ndrochak@gol.com>
500 * ReadOnlyCollectionBase.cs: Initialized private member.
501 * CollectionBase.cs: Initialized private member.
502 * common.src : Added ReadOnlyCollectionBase.cs and CollectionBase.cs
503 * /mcs/class/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
504 * /mcs/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
506 2001-08-08 Nick Drochak <nick@jobdragon.com>
508 * CollectionBase.cs: Add
509 * ReadOnlyCollectionBase.cs: Add
510 * CollectionBaseTest.cs: Add
511 * ReadOnlyCollectionBaseTest.cs: Add
513 2001-07-31 Garrett Rooney <rooneg@electricjellyfish.net>
515 * StackTest.cs: Add Test case for System.Collections.Stack.
516 Contributed by Chris Hynes <chrish@assistedsolutions.com>
518 2001-07-30 Garrett Rooney <rooneg@electricjellyfish.net>
520 * Stack.cs: Clone() doesn't need to check if it's synchronized, since
521 we override it in SyncStack anyway...
523 * Stack.cs: Pop() now shrinks the array if we drop below 1/4 full, to
524 avoid using massive amounts of memory that are not necessary. We only
525 drop to half the current size, which I hope will avoid the 'ping-pong'
528 * Stack.cs: SyncStack.IsReadOnly should return stack.IsReadOnly
529 instead of just returning false, since we may have a ReadOnly wrapper
530 in the future (although i can't imagine why). Thanks to David
531 Menestrina <dmenest@yahoo.com> for pointing this out.
533 2001-07-23 Sergey Chaban <serge@wildwestsoftware.com>
535 * Hashtable.cs: Fixed bug in Clear(), the Count wasn't zeroed.
536 From now, Clear() increases modification count.
537 Fixed HCP bug in GetHash(object) - hcp.GetHashCode() was used
538 instead of hcp.GetHashCode(key). This was resulted in the
539 insanely long lookup times when HashCodeProvider was used to
540 construct Hashtable. Added thread-safe wrapper.
542 2001-07-16 David Menestrina <dmenest@yahoo.com>
545 * BitArrayTest.cs: Add
547 2001-07-18 Miguel de Icaza <miguel@ximian.com>
549 * IDictionary.cs (Collections): IDictionary implements ICollection
550 as well. Thanks Sergey!
552 2001-07-18 Garrett Rooney <rooneg@electricjellyfish.net>
554 * Stack.cs Removed unnecessary locking from many methods of
555 SyncStack, removed SyncEnumerator because it was unnecessary,
556 added a modCount member to Stack and Stack.Enumerator, to
557 ensure that the Stack has not been modified out form under the
558 Enumerator, and changed the Enumerator to use a reference to the
559 stack rather than copying over the contents array.
561 2001-07-17 David Menestrina <dmenest@yahoo.com>
563 * Added implementation of BitArray.
565 2001-07-17 Miguel de Icaza <miguel@ximian.com>
567 * Hashtable.cs: Removed call to d.Count in the Hashtable
568 constructor that takes an IDictionary as IDictionary does not
569 provide a Count field.
571 2001-07-15 Sean MacIsaac <macisaac@ximian.com>
573 * IDictionary.cs: Clear was clear.
575 2001-07-13 Miguel de Icaza <miguel@ximian.com>
577 * All files: Renamespace things to System.
579 2001-07-05 Vladimir Vukicevic <vladimir@ximian.com>
581 * ArrayList.cs: initial checkin and implementation
583 * ICollection.cs, IComprarer.cs, IDictionary.cs,
584 IDictionaryEnumerator.cs, IEnumerable.cs, IHashCodeProvider.cs,
585 IList.cs: initial checkin