Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Triger <kostat@mono-cvs.ximian.com>2005-10-27 15:41:00 +0400
committerKonstantin Triger <kostat@mono-cvs.ximian.com>2005-10-27 15:41:00 +0400
commite5ce101e0335ff4ef6eca0335a50ae82f1408fc3 (patch)
tree5d60e6759fee595a81d22c85c2753336302d6dd4 /mcs/class/System.Data/Mono.Data.SqlExpressions
parenta34e1cf63da3d207bf69a90eed2ea8642a339d0b (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/ChangeLog4
-rw-r--r--mcs/class/System.Data/Mono.Data.SqlExpressions/In.cs24
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;
}