ChangeLog 33 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043
  1. 2008-04-13 Jb Evain <[email protected]>
  2. * ArrayList.cs, BitArray.cs, CaseInsensitiveComparer.cs
  3. CaseInsensitiveHashCodeProvider.cs, CollectionBase.cs,
  4. Comparer.cs, IHashCodeProvider.cs, Hashtable.cs,
  5. Queue.cs, Stack.cs: use the INSIDE_CORLIB pattern to
  6. internalize code that is used outside the corlib.
  7. Merged from the Moonlight 2 branch.
  8. 2008-04-02 Andreas Nahr <[email protected]>
  9. * ArrayList.cs
  10. * DictionaryBase.cs
  11. * IEqualityComparer.cs
  12. * Queue.cs
  13. * SortedList.cs
  14. * Stack.cs: Fix parameter names
  15. 2008-03-24 Gert Driesen <[email protected]>
  16. * DictionaryBase.cs: Restore previous behavior of indexer for the
  17. 1.0 profile. On 2.0 profile, do nothing in IDictionary.Remove if
  18. the key is not present in the hashtable. On 2.0 profile, we also need
  19. to add entry back to hashtable when an exception is thrown in
  20. OnRemoveComplete.
  21. 2008-03-21 Sebastien Pouliot <[email protected]>
  22. * DictionaryBase.cs: Fix getter on IDictionary.this to avoid two
  23. access to the hashtable and to behave more closely to MS
  24. implementation (see new unit tests).
  25. 2007-11-06 Jb Evain <[email protected]>
  26. * Hashtable.cs: Don't compare user keys against the special removed
  27. key. Fix #324761.
  28. 2007-11-05 Sebastien Pouliot <[email protected]>
  29. * Queue.cs: Avoid IndexOutOfRangeException after TrimToSize. Patch by
  30. Benjamin Lutz. Fix #321657.
  31. 2007-10-25 Zoltan Varga <[email protected]>
  32. * Hashtable.cs: Put the hash values into a separate array to help the GC. Fixes
  33. #336069.
  34. 2007-10-23 Robert Jordan <[email protected]>
  35. * SortedList.cs: Mark List|{Values|Keys} as serializable.
  36. Fixes #335703.
  37. 2007-08-25 Zoltan Varga <[email protected]>
  38. * ArrayList.cs: Fix overflows in BinarySearch and qsort.
  39. 2007-08-08 Atsushi Enomoto <[email protected]>
  40. * ReadOnlyCollectionBase.cs CollectionBase.cs :
  41. cosmetic 2.0 API fixes.
  42. 2007-07-19 Juraj Skripsky <[email protected]>
  43. * ArrayList.cs (ArrayList.Adapter): If the given list already is an
  44. ArrayList, just return it directly.
  45. 2007-07-05 Gert Driesen <[email protected]>
  46. * CaseInsensitiveHashCodeProvider.cs: Lazy init Default instance and
  47. reconstruct it if CurrentCulture changes.
  48. 2007-07-05 Gert Driesen <[email protected]>
  49. * CaseInsensitiveHashCodeProvider.cs: In default ctor, do not save
  50. TextInfo if current culture is invariant. Remoted private ctor.
  51. In Default, always construct new instance since the current culture
  52. may change.
  53. 2007-06-08 Ankit Jain <[email protected]>
  54. * ArrayList.cs (Shift): Clear the unused part of the array when
  55. removing elements.
  56. 2006-12-29 Marek Safar <[email protected]>
  57. * BitArray.cs: Performance improvements.
  58. 2006-11-16 Miguel de Icaza <[email protected]>
  59. * Hashtable.cs: Serialize EqualityComparer.
  60. 2006-08-16 Miguel de Icaza <[email protected]>
  61. * Hashtable.cs (PutImpl): Do not access the table twice, only
  62. once.
  63. (TestPrime): optimize, take the sqrt out of the loop.
  64. 2006-08-08 Duncan Mak <[email protected]>
  65. * ReadOnlyCollectionBase.cs (Count): Mark as virtual in
  66. NET_2_0. Fixes #79033.
  67. 2006-04-26 Atsushi Enomoto <[email protected]>
  68. * Comparer.cs : changed internal field from CultureInfo to
  69. CompareInfo. This cosmetic change should fix bug #77701.
  70. 2006-03-28 Marek Safar <[email protected]>
  71. * Stack.cs: Changed ctor to allocate only requested memory.
  72. Tue Feb 28 14:16:25 CET 2006 Paolo Molaro <[email protected]>
  73. * BitArray.cs: reintroduce optimization carelessly removed by
  74. Robitaille.
  75. 2006-02-03 Sebastien Robitaille <[email protected]>
  76. * BitArray.cs: Renamed members for interoperability with MS.
  77. Tue Jan 24 18:24:00 CET 2006 Paolo Molaro <[email protected]>
  78. * BitArray.cs: optimize bit access by removing expensive
  79. div/rem ops.
  80. 2006-01-04 Sebastien Pouliot <[email protected]>
  81. * Hashtable.cs: Mark all inner classes as [Serializable] to match MS
  82. behaviour. Fix bug #76300.
  83. 2005-12-19 Sebastien Pouliot <[email protected]>
  84. * ArrayList.cs: Fix default capacity under 2.0 (and unit tests under
  85. MS 2.0).
  86. 2005-12-07 Sebastien Pouliot <[email protected]>
  87. * SortedList.cs: Removed check for IComparable in ctor (fixed bug
  88. #76750). Removed unused private method. Added more useful info (the
  89. duplicate key) to an exception.
  90. 2005-12-06 Sebastien Pouliot <[email protected]>
  91. * CaseInsensitiveHashCodeProvider: Serialization is now compatible
  92. with MS. Removes the last TODO for 1.1 in this namespace :-)
  93. 2005-12-05 Sebastien Pouliot <[email protected]>
  94. * Comparer.cs: Added GetObjectData method to implement ISerializable.
  95. 2005-09-29 Miguel de Icaza <[email protected]>
  96. * Add ComVisible(true) to all the classes that needed it.
  97. * Removed documentation from DictionaryBase.cs and moved it to
  98. Monodoc.
  99. * ArrayList.cs: Fixed signature for constructor, parameter names
  100. are normative.
  101. * CollectionBase.cs: Add a couple of missing methods.
  102. 2005-09-01 Atsushi Enomoto <[email protected]>
  103. * Hashtable.cs : SyncHashtable.GetEnumerator() returned keys instead
  104. of entries (DictionaryEntry). Fixed bug #75790.
  105. 2005-09-01 Atsushi Enomoto <[email protected]>
  106. * SortedList.cs : Even though the key/value pair being set are
  107. identical to the existing one, it causes snapshot out of sync.
  108. Fixed bug #59694.
  109. 2005-07-21 Lluis Sanchez Gual <[email protected]>
  110. * CollectionBase.cs: Lazily create the inner list. MS.NET does
  111. it and we need to do the same for the sake of serialization
  112. interoperability. Fixes bug #75575.
  113. 2005-07-17 Florian Gross <[email protected]>
  114. * ArrayList.cs: pass along index offset in RangedArrayList:ToArray.
  115. Fixes bug #75545
  116. 2005-06-23 Ben Maurer <[email protected]>
  117. * Queue.cs: Use the enumerator rather than copy to in the
  118. ctor. This makes us more compat with msft, for example, when
  119. passing a bit array
  120. * Stack.cs: ditto
  121. 2005-06-23 Martin Baulig <[email protected]>
  122. * IKeyComparer.cs: Removed.
  123. 2005-06-12 David Waite <[email protected]>
  124. * Hashtable.cs: make prime-related functions internal so generic
  125. Dictionary can use them.
  126. * IEqualityComparer.cs: add non-generic IEqualityComparer interface
  127. 2005-06-06 Zoltan Varga <[email protected]>
  128. * Hashtable.cs: Add some missing 2.0 attributes.
  129. 2005-05-26 Ben Maurer <[email protected]>
  130. * Queue.cs (grow): fix 61919.
  131. 2005-05-09 Atsushi Enomoto <[email protected]>
  132. * Stack.cs : empty_stack.CopyTo(empty_array, 0) should be allowed.
  133. 2005-02-21 Zoltan Varga <[email protected]>
  134. * Hashtable.cs: Add net 2.0 ReliabilityContractAttributes.
  135. 2005-02-19 Kazuki Oikawa <[email protected]>
  136. * SortedList.cs, Stack.cs: Reverse the order in the Equals calls.
  137. 2004-12-21 Ben Maurer <[email protected]>
  138. * Hashtable.cs (get_Item): duplicate Find here, as we can
  139. specialize a few things. This gives me 7% back.
  140. (Find) Use break rather than return -1. Saves a bit of code.
  141. * Hashtable.cs (GetHash): Avoid a method call. Also, don't store
  142. the this.hcpRef in a variable. This will create another register
  143. which must be pushed on the stack. It is better to just reference
  144. the variable again. hcpRef.GetHashCode (key) is the slow path
  145. anyways, so an extra variable reference here doesn't hurt
  146. (KeyEquals): ditto.
  147. This gives me a few % back in a raw benchmark.
  148. 2004-12-20 Ben Maurer <[email protected]>
  149. * Hashtable.cs (Find): Some minor optimizations here.
  150. * Hashtable.cs: Remove GetImpl and inline it.
  151. * Hashtable.cs (Find): Before calling KeyEquals, check to see if k
  152. == key (ie, they are the same pointer). In many cases, this will
  153. avoid two virtual calls. This gives me 1% on mcs bootstrap (!!!!)
  154. * Hashtable.cs (Find): Make `i' a uint rather than an int. This
  155. avoids having a long compare.
  156. 2004-12-16 Lluis Sanchez Gual <[email protected]>
  157. * Hashtable.cs: Check for null serialization info in OnDeserialization.
  158. A hashtable subclass can fully override the constructor, so
  159. serializationInfo would be null in this case. Fixes bug #70698.
  160. 2004-12-16 Gonzalo Paniagua Javier <[email protected]>
  161. * ArrayList.cs: don't initialize _items twice. Closes bug #70620.
  162. 2004-12-16 Lluis Sanchez Gual <[email protected]>
  163. * Hashtable.cs: Add deserialized elements in OnDeserialization, since
  164. when the serialization constructor is called, some of the elements
  165. may not yet be fully deserialized. This fixes bug #70570.
  166. 2004-10-08 Raja R Harinath <[email protected]>
  167. * CaseInsensitiveHashCodeProvider.cs (GetHashCode): When culture
  168. is not invariant, avoid an icall on every character.
  169. 2004-07-21 Geoff Norton <[email protected]>
  170. * Hashtable.cs: lock the SyncRoot when Cloning a Synchronized hashtable to avoid
  171. a snapshot out of sync error.
  172. 2004-07-21 Duncan Mak <[email protected]>
  173. * DictionaryBase.cs: Rename the dictionary field to hashtable,
  174. which causes a serialization interop bug. Fixes bug #61721.
  175. 2004-06-18 Ben Maurer <[email protected]>
  176. * IKeyComparer.cs: v2 class
  177. 2004-06-15 Gert Driesen <[email protected]>
  178. * CaseInsensitiveComparer.cs: added TODO for serialization
  179. * CaseInsensitiveHashCodeProvider.cs: added TODO for serialization
  180. * SortedList.cs: added TODO for serialization
  181. * Stack.cs: added TODO for serialization
  182. 2004-06-14 Sebastien Pouliot <[email protected]>
  183. * Hashtable.cs: Compare index and length in CopyTo only when length > 0.
  184. 2004-06-14 Lluis Sanchez Gual <[email protected]>
  185. * ArrayList.cs: Avoid endless loop in Insert when the current size is 0.
  186. 2004-06-08 Lluis Sanchez Gual <[email protected]>
  187. * ReadOnlyCollectionBase.cs: Renamed internal variable to make serialization
  188. compatible with MS.NET.
  189. 2004-06-01 Sebastien Pouliot <[email protected]>
  190. * SortedList.cs: Fixed case where the initial capacity was set to 0.
  191. 2004-05-31 Sebastien Pouliot <[email protected]>
  192. * Hashtable.cs: Added ArgumentNullException in GetObjectData.
  193. 2004-05-29 Gonzalo Paniagua Javier <[email protected]>
  194. * ChangeLog:
  195. * Comparer.cs: reverted last 2 patches from Gert Driesen. Totally wrong.
  196. I wonder why.
  197. 2004-05-29 Gert Driesen ([email protected])
  198. * Compare.cs: ISerializable should only be implemented
  199. for NET_1_1 profile
  200. 2004-05-29 Gert Driesen ([email protected])
  201. * Compare.cs: Implemented ISerializable, fixes public API
  202. 2004-05-27 Sebastien Pouliot <[email protected]>
  203. * Hashtable.cs: Cloned synchronized Hashtables are now synchronized.
  204. * Queue.cs: Fixed case where we could still get Current after the last
  205. MoveNext. Fixed Count for Queue.Synchronize (Queue.Synchronize (q)).
  206. * SortedList.cs: Added missing ICloneable support to internal
  207. enumerator. Added Capacity to the synchronized version of SortedList.
  208. Setting Capacity to 0 returns it to it's default value (16).
  209. 2004-05-26 Sebastien Pouliot <[email protected]>
  210. * ArrayList.cs: Fixed possible integer overflows.
  211. 2004-05-24 Lluis Sanchez Gual <[email protected]>
  212. * Hashtable.cs: Renamed internal class to make serialization compatible
  213. with MS.NET.
  214. 2004-05-10 Gert Driesen ([email protected])
  215. * Hashtable.cs: marked EnumeratorMode private
  216. * SortedList.cs: marked EnumeratorMode private
  217. 2004-05-01 Andreas Nahr <[email protected]>
  218. * Comparer.cs: ensure culture is set to null , removed
  219. static constructor, removed unneccesary checks
  220. 2004-05-01 Andreas Nahr <[email protected]>
  221. * CaseInsensitiveComparer.cs: Fix the default constructor (needs to
  222. set CurrentCulture, ensure culture is set to null for invariant case,
  223. construct early
  224. * Comparer.cs: Restyle, change lineendings
  225. 2004-05-01 Andreas Nahr <[email protected]>
  226. * CaseInsensitiveHashCodeProvider.cs
  227. * CaseInsensitiveComparer.cs: Change lineendings
  228. * CaseInsensitiveComparer.cs: Restyle
  229. 2004-05-01 Andreas Nahr <[email protected]>
  230. * BitArray.cs: Fix parameter names
  231. * CaseInsensitiveHashCodeProvider.cs: Fix signature
  232. * DictionaryEntry.cs: Fix parameter names
  233. * Hashtable.cs: Fix signatures
  234. * SortedList.cs: Fix signatures
  235. 2004-04-25 Andreas Nahr <[email protected]>
  236. * CaseInsensitiveHashCodeProvider.cs: Fix the default constructor (needs to
  237. set CurrentCulture, Add null check to other constructor, Call correct function
  238. for invariant case, ensure culture is set to null for invariant case, removed
  239. static constructor, made invariant version available as internal in .Net 1.0
  240. 2004-04-21 Lluis Sanchez Gual <[email protected]>
  241. * CaseInsensitiveHashCodeProvider.cs: If the culture is null, don't use
  242. Char.ToLower(c,culture), since it does not accept null as culture.
  243. 2004-04-20 Lluis Sanchez Gual <[email protected]>
  244. * Queue.cs: Renamed internal membesr to match MS.NET (to allow serialization
  245. interoperability). I also had to make some changes in the implementation:
  246. I added a field _tail that points at the first free position in the array, and
  247. changed the type of growFactor, which is now an int (its value is the old
  248. growFactor * 100).
  249. 2004-04-19 Lluis Sanchez Gual <[email protected]>
  250. * Comparer.cs: Made constructor public.
  251. 2004-03-30 Lluis Sanchez Gual <[email protected]>
  252. * CaseInsensitiveHashCodeProvider.cs: Use the CultureInfo of the calling
  253. thread, not the one of the thread that created the instance.
  254. * Comparer.cs: Added DefaultInvariant property and missing constructor.
  255. Use the specified culture info to compare strings.
  256. 2004-03-30 Lluis Sanchez Gual <[email protected]>
  257. * CaseInsensitiveHashCodeProvider.cs: Added support for CultureInfo.
  258. Implemented property DefaultInvariant.
  259. 2004-03-29 Lluis Sanchez Gual <[email protected]>
  260. * CollectionBase.cs: Renamed internal arraylist member to match MS.NET
  261. (to allow serialization interoperability).
  262. 2004-03-18 David Sheldon <[email protected]>
  263. * Hashtable.cs: Serialise/Deserialise to two arrays of
  264. keys/values. This will match what MS.NET appears to be
  265. doing.
  266. 2004-02-12 Jackson Harper <[email protected]>
  267. * SortedList.cs: Only .et 1.0 sets the capacity to a min of
  268. initial size.
  269. 2004-01-13 Lluis Sanchez Gual <[email protected]>
  270. * Hashtable.cs: Added serialization support to SynchedHashtable. This
  271. fixes bug #52741.
  272. 2004-01-12 Gonzalo Paniagua Javier <[email protected]>
  273. * Hashtable.cs: fix Clone. Closes bug #52740. Patch by Benjamin Jemlich
  274. ([email protected]).
  275. 2003-12-26 Ben Maurer <[email protected]>
  276. * ArrayList.cs: Add class `SimpleEnumerator' this handles the
  277. .GetEnumerator We are able to remove fields by doing this, the
  278. sizeof the simple version is 75% of that of the complex one, so we
  279. get a pretty nice saving.
  280. 2003-12-23 Lluis Sanchez Gual <[email protected]>
  281. * ArrayList.cs: Renamed private fields m_Count, m_Data and
  282. m_StateChanges to _size, _items and _version, to make it compatible with
  283. MS.NET (needed for remoting interoperability). This fixes bug #52438.
  284. 2003-12-01 Dick Porter <[email protected]>
  285. * CaseInsensitiveComparer.cs: Construct the default comparers when
  286. they're needed, to avoid a dependency loop with CultureInfo's
  287. constructor.
  288. 2003-12-01 Gonzalo Paniagua Javier <[email protected]>
  289. * Queue.cs: patch from Carlos Barcenilla.
  290. public class Queue
  291. - method: ICollection.Clone()
  292. - Optimized. Removed unneeded instructions.
  293. - method: public static Queue Synchronized (Queue queue)
  294. - ArgumentNullException.ParamName must be "queue", not null.
  295. - method: public virtual void TrimToSize()
  296. - Must increment modCount.
  297. private class SyncQueue
  298. - method: public override object Clone ()
  299. - Must return a synchronized (SyncStack) instance.
  300. - method: public override void TrimToSize ()
  301. - Not implemented.
  302. 2003-11-13 Andreas Nahr <[email protected]>
  303. * IEnumerator.cs: Added missing attribute
  304. 2003-11-12 Miguel de Icaza <[email protected]>
  305. * CaseInsensitiveComparer.cs: Add missing method.
  306. 2003-11-10 Zoltan Varga <[email protected]>
  307. * Stack.cs: Applied patch from Carlos A. Barcenilla to fix minor
  308. bugs (#50755).
  309. 2003-11-03 Lluis Sanchez Gual <[email protected]>
  310. * SortedList.cs: Added [Serializable] to Slot class. This fixes bug #50484.
  311. 2003-10-10 Gonzalo Paniagua Javier <[email protected]>
  312. * System.Collections/Hashtable.cs: patch from Carlos A.
  313. Barcenilla ([email protected]) that includes some fixes for
  314. Hashtable + NUnit2 tests.
  315. 2003-10-08 Gonzalo Paniagua Javier <[email protected]>
  316. * Queue.cs: nullify the array in Clear.
  317. 2003-09-26 Zoltan Varga <[email protected]>
  318. * Hashtable.cs: Remove empty static constructor since it prevents this
  319. class from being beforefieldinit.
  320. 2003-08-27 Gonzalo Paniagua Javier <[email protected]>
  321. * CaseInsensitiveHashCodeProvider.cs: small speed improvement.
  322. 2003-08-21 Gonzalo Paniagua Javier <[email protected]>
  323. * Stack.cs: patch by [email protected] (Joerg Rosenkranz) that fixes
  324. bug #47789.
  325. 2003-08-20 Duncan Mak <[email protected]>
  326. * Hashtable.cs (PutImpl): Fix my previous checkin, see details
  327. posted on bug #47692.
  328. I really hope I don't mess up this time, because, if I do again,
  329. it will be really embarrassing.
  330. 2003-08-17 Duncan Mak <[email protected]>
  331. * Hashtable.cs (PutImpl): Patch from Luca Barbieri <[email protected]>.
  332. Currently Hashtable.PutImpl has an incorrect test which causes the
  333. key chain search to terminate as soon as a free slot is found,
  334. causing key duplication.
  335. This fixes bug #47692.
  336. 2003-08-11 Duncan Mak <[email protected]>
  337. * DictionaryBase.cs: Applied patch from Carlos Barcenilla
  338. ([email protected]).
  339. (Idictionary.Add): Added OnValidate, and undo the transaction if
  340. OnInsertCompleteFails.
  341. (Indexer set): MS Implementation does not call OnInsert and undoes
  342. if OnSetComplete throws an exception
  343. (Indexer get): return value is obtained after calling OnGet.
  344. (IDictionary.Remove): Call to OnValidate added. If key does not
  345. exists calls OnValidate, OnRemove and OnRemoveComplete.
  346. (protected IDictionary Dictionary get): Should return itself, not
  347. the inner hashtable.
  348. This fixes bug #47460.
  349. 2003-08-10 Gonzalo Paniagua Javier <[email protected]>
  350. * CollectionBase.cs: applied patch from Carlos Barcenilla
  351. ([email protected]).
  352. 2003-08-04 Gonzalo Paniagua Javier <[email protected]>
  353. * ArrayList.cs: added / so that gvim syntax highlight doesn't go crazy.
  354. * CollectionBase.cs: fixed several bugs reported by Carlos Barcenilla
  355. ([email protected]). Most of the patch is also his.
  356. 2003-07-31 Gonzalo Paniagua Javier <[email protected]>
  357. * ArrayList.cs: fixed EnsureCapacity when m_Data.Length is 0.
  358. 2003-07-29 Miguel de Icaza <[email protected]>
  359. * ArrayList.cs: Deployed ArrayList from Tum; Fixed iterator to
  360. allow nulls, and inline a few calls to make profiling more useful.
  361. 2003-07-24 Miguel de Icaza <[email protected]>
  362. * ArrayList.cs: Removed MonoTODO.
  363. 2003-07-07 Gonzalo Paniagua Javier <[email protected]>
  364. * Hashtable.cs: made SynchedHashtable serializable. Fixes bug #45918.
  365. Thanks to [email protected] (Joerg Rosenkranz).
  366. 2003-06-27 Duncan Mak <[email protected]>
  367. * Hashtable.cs: Patch from [email protected], GetEnumerator should be
  368. returning DictionaryEntrys, instead of just the Key of the table.
  369. 2003-06-26 Lluis Sanchez Gual <[email protected]>
  370. * Hashtable.cs: Fixed bug when serializing and deserializing
  371. a hashtable from which one element has been deleted. The Object instance
  372. used as a removed marker is not detected as a such, since the
  373. serializer creates a different instace.
  374. 2003-06-13 Herve Poussineau <[email protected]>
  375. * SortedList.cs: Can enumerate on DictionaryEntries, not only on
  376. keys on values. Enumerate by default on DictionaryEntries.
  377. 2003-06-12 Duncan Mak <[email protected]>
  378. * Hashtable.cs (constructor):
  379. if loadFactor equals Single.NaN, then throw an
  380. ArgumentOutOfRangeException.
  381. if we set capacity to be too big (ie. capacity / loadFactor is
  382. greater than Int32.MaxValue), then we throw an ArgumentException.
  383. 2003-06-11 Duncan Mak <[email protected]>
  384. * SortedList.cs: Oi! What a mess.
  385. If the list was constructed using the null-param constructor, and
  386. it tries to set it to a size lower than the default, let it do so.
  387. If the list was constructed with a specific size, and it tries to
  388. set it to a size lower than the specified size, set it to the
  389. default size.
  390. (IndexOfValue): Clean up the code somewhat, make it allow for
  391. values to be null.
  392. 2003-06-08 Ben Maurer <[email protected]>
  393. * ArrayList.cs, Hashtable.cs, SortedList.cs: Enumerator fixes, error
  394. checking
  395. 2003-06-07 Ben Maurer <[email protected]>
  396. * Stack.cs: Contains (null) works correctly. We never have the
  397. array sized less than 16, so that the doubling logic works no
  398. matter what. The enumerator is IClonable, like in ms. The
  399. Enumerator correctly throws an exception if Current is called
  400. before the enumerator is started. We now pass all the Rotor tests
  401. for this file!
  402. 2003-06-07 Gonzalo Paniagua Javier <[email protected]>
  403. * Stack.cs: fixed Clone ().
  404. 2003-06-04 Ben Maurer <[email protected]>
  405. * DictionaryEntry.cs: Throw exception if key == null. Fixes Rotor
  406. failures
  407. 2003-06-04 Gonzalo Paniagua Javier <[email protected]>
  408. * ArrayList.cs: nullify the array in Clear ().
  409. * Queue.cs: nullify the array in Dequeue ().
  410. * Stack.cs: nullify the array in Pop ().
  411. 2003-06-02 Ben Maurer <[email protected]>
  412. * Queue.cs: Added argument checking in constructors according to
  413. specs. Also changed default size to 32 as required by the specs.
  414. 2003-05-31 Ben Maurer <[email protected]>
  415. * BitArray.cs: Rewrote, as it was failing most of the Rotor
  416. tests. It now passes them 100%. Also fixes bug #43667.
  417. 2003-05-03 Ben Maurer <[email protected]>
  418. * ArrayList.cs
  419. Made ArrayList.GetRange () make a wrapper around the array list, like Microsoft does. Fixes bug #39724.
  420. 2003-05-03 Ben Maurer <[email protected]>
  421. * ArrayList.cs
  422. Added methods to support IList wrappers
  423. 2003-04-22 Gonzalo Paniagua Javier <[email protected]>
  424. * ArrayList.cs: patch from [email protected] (Bernie Solomon)
  425. that fixes bug #41684.
  426. 2003-04-15 Eduardo Garcia Cebollero <[email protected]>
  427. * CaseInsensitiveComparerTest.cs: Fixed Compare Method (now works
  428. like MS.NET) and implemented the
  429. CaseInsensitiveComparerTest(culture) constructor.
  430. 2003-03-05 Gonzalo Paniagua Javier <[email protected]>
  431. * Queue.cs: fixed bug #39046.
  432. 2003-02-15 Pedro Martnez Juli <[email protected]>
  433. * Hashtable.cs: Make hashtable serializable (at least with binary
  434. formatter). This process was started by the Hashtable maintainer.
  435. 2003-02-09 Gonzalo Paniagua Javier <[email protected]>
  436. * ArrayList.cs: fixed setSize (!).
  437. 2003-01-31 Zoltan Varga <[email protected]>
  438. * ArrayList.cs (RemoveAt): duplicated the the code from RemoveRange
  439. here, since RemoveAt raises a different exception than RemoveRange
  440. when the index is out-of-range. Fixes the ArrayList unit tests.
  441. * ArrayList.cs (RemoveRange): fixed indentation.
  442. 2003-01-12 Varga Zoltan <[email protected]>
  443. * ArrayList.cs (RemoveRange): Patch for allowing zero-size
  444. removal at the end of a list. It also cleans up the argument
  445. checking code so the raised exceptions have the same message as
  446. under MS.NET.
  447. 2003-01-10 Duncan Mak <[email protected]>
  448. * ArrayList.cs (Insert): Patch from Zoltan
  449. ([email protected]).
  450. 2002-10-27 Gonzalo Paniagua Javier <[email protected]>
  451. * Hashtable.cs: add the key to the error message when
  452. 'key duplication'.
  453. 2002-10-15 Vladimir Vukicevic <[email protected]>
  454. * Queue.cs: update new capacity in grow(), preventing queue from
  455. constantly looping over old elements in Dequeue(). Also use
  456. capacity instead of contents.Length in Enqueue().
  457. 2002-09-24 Nick Drochak <[email protected]>
  458. * ArrayList.cs: Make enumerator throw exception if the ArrayList is
  459. mutated (Insert, Delete, etc.). Also, fix bug in InsertRange() when
  460. this was passed as parameter.
  461. 2002-08-29 Gonzalo Paniagua Javier <[email protected]>
  462. * ArrayList.cs: fixed bug #29658.
  463. 2002-08-24 Gonzalo Paniagua Javier <[email protected]>
  464. * ArrayList.cs:
  465. * BitArray.cs:
  466. * CaseInsensitiveComparer.cs:
  467. * CaseInsensitiveHashCodeProvider.cs:
  468. * IEnumerable.cs:
  469. * Queue.cs: misc. fixes based on class status page.
  470. 2002-07-22 Tim Coleman <[email protected]>
  471. * CaseInsensitiveHashCodeProvider.cs: Added missing constructor
  472. which was breaking System.Web build on linux
  473. 2002-07-05 Sergey Chaban <[email protected]>
  474. * SortedList.cs: Implemented thread-safe wrapper. Changed some
  475. args to camelCase.
  476. 2002-07-02 Nick Drochak <[email protected]>
  477. * SortedList.cs: Constructors should use the capacity given regardless
  478. how small. After a Clear() the Capacit should be 16. Since a Dictionary
  479. might be used in the constructor, make sure we trap exceptions thrown
  480. by the Comparer, like in Add().
  481. 2002-06-30 Nick Drochak <[email protected]>
  482. * SortedList.cs: Many fixed. A lot of checking for null and throwing
  483. exceptions. A few logic bugs fixed as well
  484. 2002-06-25 Nick Drochak <[email protected]>
  485. * Queue.cs (CopyTo): Fix logic for copying the circular array.
  486. (Enqueue): Use actual length of array to determine when to grow
  487. (QueueEnumerator) Fixed Current to use array length, not capacity, and
  488. fixed off-by-one errror in MoveNext().
  489. Tue Jun 4 13:08:43 CEST 2002 Paolo Molaro <[email protected]>
  490. * ArrayList.cs: fixed RemoveAt() implementation.
  491. 2002-05-27 Nick Drochak <[email protected]>
  492. * ArrayList.cs (LastIndexOf): Return -1 if searching for null, also
  493. fix check of parameters sent to make sure we don't search beyond the
  494. beginning of the list.
  495. (ListWrapper): Throw exception if called with null.
  496. We now pass all unit tests.
  497. 2002-05-23 Duncan Mak <[email protected]>
  498. * ArrayList.cs (Wrapper): Preliminary implementation of
  499. ArrayList.Wrapper (IList).
  500. 2002-05-22 Martin Baulig <[email protected]>
  501. * ArrayList.cs: Made count, capacity and dataArray the first three
  502. fields in the class. They're read by the reflection library.
  503. 2002-05-21 Lawrence Pit <[email protected]>
  504. * ArrayList.cs: Fixed bug where a capacity of 0 could be reached,
  505. thereby causing problems when trying to add elements.
  506. 2002-05-06 Duncan Mak <[email protected]>
  507. * Queue.cs (TrimToSize): Implemented.
  508. 2002-05-05 Nick Drochak <[email protected]>
  509. * ArrayList.cs: Throw RankException when constructing from a
  510. multi-dimensional array. Confirmed behavior from MS.NET
  511. Thu May 2 15:18:11 CEST 2002 Paolo Molaro <[email protected]>
  512. * ArrayList.cs: make mcs compile again: it's allowed to
  513. call arraylist.CopyTo(array, 0) when the length of the array
  514. is also 0.
  515. Wed May 1 17:05:40 CEST 2002 Paolo Molaro <[email protected]>
  516. * SortedList.cs: fix RemoveAt () to use the correct length in
  517. Array.Copy.
  518. 2002-05-01 Nick Drochak <[email protected]>
  519. * ArrayList.cs (Add & AddRange) : Throw exceptions where needed.
  520. 2002/05/01 Nick Drochak <[email protected]>
  521. * ArrayList.cs (CopyTo) : Check parameters and throw exceptions
  522. where needed.
  523. 2002/04/30 Nick Drochak <[email protected]>
  524. * ArrayList.cs (Clear) : Throw exception if ReadOnly or FixedSize.
  525. (InsertRange) : Implement.
  526. (SetRange) : Implement.
  527. 2002-04-30 Nick Drochak <[email protected]>
  528. * ArrayList.cs (TrimToSize) : Implement.
  529. 2002-04-28 Duncan Mak <[email protected]>
  530. * ArrayList.cs (InsertRange):
  531. (SetRange):
  532. (Remove):
  533. (TrimToSize): Throw exceptions where needed.
  534. 2002-04-29 Nick Drochak <[email protected]>
  535. * Hashtable.cs (CopyTo): Throw exceptions where needed.
  536. 2002-04-28 Duncan Mak <[email protected]>
  537. * ArrayList.cs (ReadOnly):
  538. (IList.ReadOnly): Implemented.
  539. (Synchronized):
  540. (IList.Synchronized): Implemented.
  541. (ixedSize):
  542. (IList.FixedSize): Implemented.
  543. 2002-03-24 Duncan Mak <[email protected]>
  544. * SortedList.cs (Synchronized): Stubbed out a missing method
  545. pointed out by Jakk Simm's test suite.
  546. 2002-03-14 Nick Drochak <[email protected]>
  547. * ArrayList.cs (FixedSize(ArrayList)): should return an ArrayList. The
  548. other FixedSize() methods returns an IList.
  549. 2002-03-13 Duncan Mak <[email protected]>
  550. * ArrayList.cs (FixedSize): Changed the return type to IList if
  551. the argument is an IList.
  552. (Synchronized): Ditto here.
  553. 2002-03-08 Sergey Chaban <[email protected]>
  554. * Hashtable.cs: Fixed ToPrime () bug. Removed ALLOC_GRAIN.
  555. Removed unused code from static constructor.
  556. GetObjectData () - Version is the same as modificationCount.
  557. 2002-02-20 Nick Drochak <[email protected]>
  558. * ArrayList.cs: Add MonoTODO's where necessary. Fix bugs discovered
  559. by Bucky's tests. Implement a couple of things that were left undone.
  560. Mon Feb 11 19:49:25 CET 2002 Paolo Molaro <[email protected]>
  561. * ArrayList.cs: Dick's fix to contructor.
  562. 2002-02-07 Duncan Mak <[email protected]>
  563. * Hashtable.cs: Implemented parts of the ISerializable
  564. interface. GetObjectData () is good, but serialization constructor
  565. needs some more love.
  566. Sat Jan 5 15:56:54 CET 2002 Paolo Molaro <[email protected]>
  567. * Hashtable.cs: the IDictionaryEnumerator returns DictionaryEntries.
  568. 2002-01-04 Ravi Pratap <[email protected]>
  569. * Correct name to MonoTODO everywhere.
  570. 2002-01-04 Ravi Pratap <[email protected]>
  571. * ArrayList.cs : Setting an index does not implicitly
  572. extend the arraylist : remove FIXME.
  573. Decorate incomplete elements with the TODO attribute.
  574. * BitArray.cs : Insert TODO attributes where appropriate.
  575. * CaseInsensitiveHashcodeProvider.cs: Ditto.
  576. * Hashtable.cs, SortedList.cs : Ditto.
  577. Thu Dec 13 20:17:08 CET 2001 Paolo Molaro <[email protected]>
  578. * ArrayList.cs: implemented AddRange(), CopyTo().
  579. 2001-11-19 Miguel de Icaza <[email protected]>
  580. * DictionaryBase.cs: Implemented.
  581. Wed Nov 14 16:45:49 CET 2001 Paolo Molaro <[email protected]>
  582. * ArrayList.cs: implement ArrayListEnumerator.
  583. * Hashtable.cs: hardcode the prime number table.
  584. 2001-11-06 Nick Drochak <[email protected]>
  585. * Queue.cs: Fixes from Ricardardo. QueueTest also updated.
  586. 2001-11-04 Nick Drochak <[email protected]>
  587. * Queue.cs: Fixed small syntax errors that were preventing the compile.
  588. I changed the build file to include Queue.cs as well.
  589. 2001-11-04 Nick Drochak <[email protected]>
  590. * ArrayList.cs: Fixed "off by one" error when shifting left the array when
  591. items are removed.
  592. * CollectionBase.cs: Added OnValidate(), OnRemove() and OnRemoveComplete()
  593. hook methods to the RemoveAt() method.
  594. 2001-11-04 Nick Drochak <[email protected]>
  595. * ArrayList.cs: Added private enumerator class and make GetEnumerator()
  596. methods return an instance of it.
  597. Tue Sep 25 18:52:48 CEST 2001 Paolo Molaro <[email protected]>
  598. * ArrayList.cs: fix Insert () to check capacity, not count.
  599. Tue Sep 25 16:54:54 CEST 2001 Paolo Molaro <[email protected]>
  600. * DictionaryEntry.cs: added.
  601. 2001-08-10 Dietmar Maurer <[email protected]>
  602. * common.src: removed duplicate entries
  603. 2001-08-08 Nick Drochak <[email protected]>
  604. * ReadOnlyCollectionBase.cs: Initialized private member.
  605. * CollectionBase.cs: Initialized private member.
  606. * common.src : Added ReadOnlyCollectionBase.cs and CollectionBase.cs
  607. * /mcs/class/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
  608. * /mcs/makefile: Used $(SYSTEMROOT) instead of hard coded //c/winnt
  609. 2001-08-08 Nick Drochak <[email protected]>
  610. * CollectionBase.cs: Add
  611. * ReadOnlyCollectionBase.cs: Add
  612. * CollectionBaseTest.cs: Add
  613. * ReadOnlyCollectionBaseTest.cs: Add
  614. 2001-07-31 Garrett Rooney <[email protected]>
  615. * StackTest.cs: Add Test case for System.Collections.Stack.
  616. Contributed by Chris Hynes <[email protected]>
  617. 2001-07-30 Garrett Rooney <[email protected]>
  618. * Stack.cs: Clone() doesn't need to check if it's synchronized, since
  619. we override it in SyncStack anyway...
  620. * Stack.cs: Pop() now shrinks the array if we drop below 1/4 full, to
  621. avoid using massive amounts of memory that are not necessary. We only
  622. drop to half the current size, which I hope will avoid the 'ping-pong'
  623. effect.
  624. * Stack.cs: SyncStack.IsReadOnly should return stack.IsReadOnly
  625. instead of just returning false, since we may have a ReadOnly wrapper
  626. in the future (although i can't imagine why). Thanks to David
  627. Menestrina <[email protected]> for pointing this out.
  628. 2001-07-23 Sergey Chaban <[email protected]>
  629. * Hashtable.cs: Fixed bug in Clear(), the Count wasn't zeroed.
  630. From now, Clear() increases modification count.
  631. Fixed HCP bug in GetHash(object) - hcp.GetHashCode() was used
  632. instead of hcp.GetHashCode(key). This was resulted in the
  633. insanely long lookup times when HashCodeProvider was used to
  634. construct Hashtable. Added thread-safe wrapper.
  635. 2001-07-16 David Menestrina <[email protected]>
  636. * BitArray.cs: Add
  637. * BitArrayTest.cs: Add
  638. 2001-07-18 Miguel de Icaza <[email protected]>
  639. * IDictionary.cs (Collections): IDictionary implements ICollection
  640. as well. Thanks Sergey!
  641. 2001-07-18 Garrett Rooney <[email protected]>
  642. * Stack.cs Removed unnecessary locking from many methods of
  643. SyncStack, removed SyncEnumerator because it was unnecessary,
  644. added a modCount member to Stack and Stack.Enumerator, to
  645. ensure that the Stack has not been modified out form under the
  646. Enumerator, and changed the Enumerator to use a reference to the
  647. stack rather than copying over the contents array.
  648. 2001-07-17 David Menestrina <[email protected]>
  649. * Added implementation of BitArray.
  650. 2001-07-17 Miguel de Icaza <[email protected]>
  651. * Hashtable.cs: Removed call to d.Count in the Hashtable
  652. constructor that takes an IDictionary as IDictionary does not
  653. provide a Count field.
  654. 2001-07-15 Sean MacIsaac <[email protected]>
  655. * IDictionary.cs: Clear was clear.
  656. 2001-07-13 Miguel de Icaza <[email protected]>
  657. * All files: Renamespace things to System.
  658. 2001-07-05 Vladimir Vukicevic <[email protected]>
  659. * ArrayList.cs: initial checkin and implementation
  660. * ICollection.cs, IComprarer.cs, IDictionary.cs,
  661. IDictionaryEnumerator.cs, IEnumerable.cs, IHashCodeProvider.cs,
  662. IList.cs: initial checkin