diff options
author | Konstantin Triger <kostat@mono-cvs.ximian.com> | 2005-10-27 15:41:00 +0400 |
---|---|---|
committer | Konstantin Triger <kostat@mono-cvs.ximian.com> | 2005-10-27 15:41:00 +0400 |
commit | e5ce101e0335ff4ef6eca0335a50ae82f1408fc3 (patch) | |
tree | 5d60e6759fee595a81d22c85c2753336302d6dd4 /mcs/class/System.Data/Mono.Data.SqlExpressions | |
parent | a34e1cf63da3d207bf69a90eed2ea8642a339d0b (diff) |
Fix the enumerator initialization problem
svn path=/trunk/mcs/; revision=52269
Diffstat (limited to 'mcs/class/System.Data/Mono.Data.SqlExpressions')
-rw-r--r-- | mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog | 4 | ||||
-rw-r--r-- | mcs/class/System.Data/Mono.Data.SqlExpressions/In.cs | 24 |
2 files changed, 17 insertions, 11 deletions
diff --git a/mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog b/mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog index 4d1a295ebe4..232d86167bb 100644 --- a/mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog +++ b/mcs/class/System.Data/Mono.Data.SqlExpressions/ChangeLog @@ -1,3 +1,7 @@ +2005-10-26 Konstantin Triger <kostat@mainsoft.com> + + * In.cs: Fix the enumerator initialization problem. + 2005-10-21 Senganal T <tsenganal@novell.com> * Numeric.cs : diff --git a/mcs/class/System.Data/Mono.Data.SqlExpressions/In.cs b/mcs/class/System.Data/Mono.Data.SqlExpressions/In.cs index 3c2903b3e57..34e0d1ed799 100644 --- a/mcs/class/System.Data/Mono.Data.SqlExpressions/In.cs +++ b/mcs/class/System.Data/Mono.Data.SqlExpressions/In.cs @@ -54,15 +54,17 @@ namespace Mono.Data.SqlExpressions { In other = (In) obj; if (other.set.Count != set.Count) return false; - - IEnumerator enumerator = set.GetEnumerator (); - IEnumerator oenumerator = other.set.GetEnumerator (); - do { - if (!oenumerator.Current.Equals (enumerator.Current)) + for (int i = 0, count = set.Count; i < count; i++) { + object o1 = set[i]; + object o2 = other.set[i]; + + if (o1 == null && o2 != null) + return false; + + if (!o1.Equals(o2)) return false; } - while (enumerator.MoveNext () || oenumerator.MoveNext ()); return true; } @@ -70,12 +72,12 @@ namespace Mono.Data.SqlExpressions { public override int GetHashCode() { int hashCode = base.GetHashCode (); - IEnumerator enumerator = set.GetEnumerator (); - - do { - hashCode ^= enumerator.Current.GetHashCode (); + for (int i = 0, count = set.Count; i < count; i++) { + object o = set[i]; + if (o != null) + hashCode ^= o.GetHashCode(); } - while (enumerator.MoveNext ()); + return hashCode; } |