X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem%2FSystem.Collections.Specialized%2FOrderedDictionary.cs;h=9aa976bf9b2a7b50febe74bda240f2ec216b4551;hb=c259a8cc51e4240849a68d69db7781df89152213;hp=4969a2ca99bb8bdf4d23a5b5b63b07b70d321d60;hpb=c5825c88a16aea494ff097174243507a68235baf;p=mono.git diff --git a/mcs/class/System/System.Collections.Specialized/OrderedDictionary.cs b/mcs/class/System/System.Collections.Specialized/OrderedDictionary.cs index 4969a2ca99b..9aa976bf9b2 100644 --- a/mcs/class/System/System.Collections.Specialized/OrderedDictionary.cs +++ b/mcs/class/System/System.Collections.Specialized/OrderedDictionary.cs @@ -4,7 +4,7 @@ // Authors: // Lluis Sanchez Gual (lluis@novell.com) // -// Copyright (C) 2005 Novell, Inc (http://www.novell.com) +// Copyright (C) 2005 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the @@ -38,8 +38,8 @@ namespace System.Collections.Specialized ArrayList list; Hashtable hash; bool readOnly; - int initialCapacity; - SerializationInfo serializationInfo; + int initialCapacity; + SerializationInfo serializationInfo; IEqualityComparer comparer; public OrderedDictionary () @@ -54,68 +54,68 @@ namespace System.Collections.Specialized list = new ArrayList (initialCapacity); hash = new Hashtable (initialCapacity); } - - public OrderedDictionary (IEqualityComparer equalityComparer) - { + + public OrderedDictionary (IEqualityComparer equalityComparer) + { list = new ArrayList (); - hash = new Hashtable (equalityComparer); + hash = new Hashtable (equalityComparer); comparer = equalityComparer; - } - - public OrderedDictionary (int capacity, IEqualityComparer equalityComparer) - { + } + + public OrderedDictionary (int capacity, IEqualityComparer equalityComparer) + { initialCapacity = (capacity < 0) ? 0 : capacity; list = new ArrayList (initialCapacity); hash = new Hashtable (initialCapacity, equalityComparer); comparer = equalityComparer; - } + } protected OrderedDictionary (SerializationInfo info, StreamingContext context) - { + { serializationInfo = info; } - - protected virtual void OnDeserialization (object sender) - { - OnDeserialization (sender); - } - - void IDeserializationCallback.OnDeserialization (object sender) - { - if (serializationInfo == null) - return; - - comparer = (IEqualityComparer) serializationInfo.GetValue ("KeyComparer", typeof (IEqualityComparer)); + + protected virtual void OnDeserialization (object sender) + { + ((IDeserializationCallback) this).OnDeserialization (sender); + } + + void IDeserializationCallback.OnDeserialization (object sender) + { + if (serializationInfo == null) + return; + + comparer = (IEqualityComparer) serializationInfo.GetValue ("KeyComparer", typeof (IEqualityComparer)); readOnly = serializationInfo.GetBoolean ("ReadOnly"); - initialCapacity = serializationInfo.GetInt32 ("InitialCapacity"); - + initialCapacity = serializationInfo.GetInt32 ("InitialCapacity"); + if (list == null) - list = new ArrayList (); - else - list.Clear (); - - hash = new Hashtable (comparer); - object[] array = (object[]) serializationInfo.GetValue ("ArrayList", typeof(object[])); - foreach (DictionaryEntry de in array) { + list = new ArrayList (); + else + list.Clear (); + + hash = new Hashtable (comparer); + object[] array = (object[]) serializationInfo.GetValue ("ArrayList", typeof(object[])); + foreach (DictionaryEntry de in array) { hash.Add (de.Key, de.Value); list.Add (de); } } public virtual void GetObjectData (SerializationInfo info, StreamingContext context) - { - if (info == null) - throw new ArgumentNullException ("info"); - - info.AddValue ("KeyComparer", comparer, typeof (IEqualityComparer)); + { + if (info == null) + throw new ArgumentNullException ("info"); + + info.AddValue ("KeyComparer", comparer, typeof (IEqualityComparer)); info.AddValue ("ReadOnly", readOnly); info.AddValue ("InitialCapacity", initialCapacity); - - object[] array = new object [hash.Count]; + + object[] array = new object [hash.Count]; hash.CopyTo (array, 0); info.AddValue ("ArrayList", array); - } - + } + IEnumerator IEnumerable.GetEnumerator() { return list.GetEnumerator (); @@ -126,29 +126,29 @@ namespace System.Collections.Specialized return list.Count; } } - - bool ICollection.IsSynchronized { - get { - return list.IsSynchronized; - } - } - - object ICollection.SyncRoot { - get { - return list.SyncRoot; - } - } + + bool ICollection.IsSynchronized { + get { + return list.IsSynchronized; + } + } + + object ICollection.SyncRoot { + get { + return list.SyncRoot; + } + } public void CopyTo (Array array, int index) { list.CopyTo (array, index); } - - bool IDictionary.IsFixedSize { - get { - return false; - } - } + + bool IDictionary.IsFixedSize { + get { + return false; + } + } public bool IsReadOnly { @@ -178,9 +178,9 @@ namespace System.Collections.Specialized set { WriteCheck (); DictionaryEntry de = (DictionaryEntry) list [index]; - de.Value = value; - // update (even on the list) isn't automatic - list [index] = de; + de.Value = value; + // update (even on the list) isn't automatic + list [index] = de; hash [de.Key] = value; } } @@ -238,7 +238,7 @@ namespace System.Collections.Specialized { for (int n=0; n