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:
authorJb Evain <jbevain@gmail.com>2009-01-22 18:05:35 +0300
committerJb Evain <jbevain@gmail.com>2009-01-22 18:05:35 +0300
commita560d612bf942d56b78a50fbec2f2c2a8f2233ae (patch)
treef520cc9b82d2d3a5e04e135e67353410f2775886 /mcs/class/System.Core/System.Linq/Enumerable.cs
parentf853e0e603257f43c8260be67eb12d74724b846e (diff)
2009-01-22 Jb Evain <jbevain@novell.com>
* Enumerable.cs (SequenceEqual): make sure we dispose enumerators. svn path=/trunk/mcs/; revision=124212
Diffstat (limited to 'mcs/class/System.Core/System.Linq/Enumerable.cs')
-rw-r--r--mcs/class/System.Core/System.Linq/Enumerable.cs20
1 files changed, 11 insertions, 9 deletions
diff --git a/mcs/class/System.Core/System.Linq/Enumerable.cs b/mcs/class/System.Core/System.Linq/Enumerable.cs
index 9ab384f3f43..db8ae017ed0 100644
--- a/mcs/class/System.Core/System.Linq/Enumerable.cs
+++ b/mcs/class/System.Core/System.Linq/Enumerable.cs
@@ -2251,18 +2251,20 @@ namespace System.Linq
if (comparer == null)
comparer = EqualityComparer<TSource>.Default;
- var first_enumerator = first.GetEnumerator ();
- var second_enumerator = second.GetEnumerator ();
+ using (var first_enumerator = first.GetEnumerator ()) {
+ using (var second_enumerator = second.GetEnumerator ()) {
- while (first_enumerator.MoveNext ()) {
- if (!second_enumerator.MoveNext ())
- return false;
+ while (first_enumerator.MoveNext ()) {
+ if (!second_enumerator.MoveNext ())
+ return false;
- if (!comparer.Equals (first_enumerator.Current, second_enumerator.Current))
- return false;
- }
+ if (!comparer.Equals (first_enumerator.Current, second_enumerator.Current))
+ return false;
+ }
- return !second_enumerator.MoveNext ();
+ return !second_enumerator.MoveNext ();
+ }
+ }
}
#endregion