diff options
author | Jb Evain <jbevain@gmail.com> | 2009-01-22 18:05:35 +0300 |
---|---|---|
committer | Jb Evain <jbevain@gmail.com> | 2009-01-22 18:05:35 +0300 |
commit | a560d612bf942d56b78a50fbec2f2c2a8f2233ae (patch) | |
tree | f520cc9b82d2d3a5e04e135e67353410f2775886 /mcs/class/System.Core/System.Linq/Enumerable.cs | |
parent | f853e0e603257f43c8260be67eb12d74724b846e (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.cs | 20 |
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 |