Browse Source

Fix dispose order in SelectMany.

Bart De Smet 7 years ago
parent
commit
0af62a18c3
1 changed files with 48 additions and 48 deletions
  1. 48 48
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SelectMany.cs

+ 48 - 48
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SelectMany.cs

@@ -127,18 +127,18 @@ namespace System.Linq
 
             public override async ValueTask DisposeAsync()
             {
-                if (_sourceEnumerator != null)
-                {
-                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
-                    _sourceEnumerator = null;
-                }
-
                 if (_resultEnumerator != null)
                 {
                     await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                     _resultEnumerator = null;
                 }
 
+                if (_sourceEnumerator != null)
+                {
+                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
+                    _sourceEnumerator = null;
+                }
+
                 await base.DisposeAsync().ConfigureAwait(false);
             }
 
@@ -218,18 +218,18 @@ namespace System.Linq
 
             public override async ValueTask DisposeAsync()
             {
-                if (_sourceEnumerator != null)
-                {
-                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
-                    _sourceEnumerator = null;
-                }
-
                 if (_resultEnumerator != null)
                 {
                     await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                     _resultEnumerator = null;
                 }
 
+                if (_sourceEnumerator != null)
+                {
+                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
+                    _sourceEnumerator = null;
+                }
+
                 await base.DisposeAsync().ConfigureAwait(false);
             }
 
@@ -313,18 +313,18 @@ namespace System.Linq
 
             public override async ValueTask DisposeAsync()
             {
-                if (_sourceEnumerator != null)
-                {
-                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
-                    _sourceEnumerator = null;
-                }
-
                 if (_resultEnumerator != null)
                 {
                     await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                     _resultEnumerator = null;
                 }
 
+                if (_sourceEnumerator != null)
+                {
+                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
+                    _sourceEnumerator = null;
+                }
+
                 _currentSource = default;
 
                 await base.DisposeAsync().ConfigureAwait(false);
@@ -411,18 +411,18 @@ namespace System.Linq
 
             public override async ValueTask DisposeAsync()
             {
-                if (_sourceEnumerator != null)
-                {
-                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
-                    _sourceEnumerator = null;
-                }
-
                 if (_resultEnumerator != null)
                 {
                     await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                     _resultEnumerator = null;
                 }
 
+                if (_sourceEnumerator != null)
+                {
+                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
+                    _sourceEnumerator = null;
+                }
+
                 _currentSource = default;
 
                 await base.DisposeAsync().ConfigureAwait(false);
@@ -510,18 +510,18 @@ namespace System.Linq
 
             public override async ValueTask DisposeAsync()
             {
-                if (_sourceEnumerator != null)
-                {
-                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
-                    _sourceEnumerator = null;
-                }
-
                 if (_resultEnumerator != null)
                 {
                     await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                     _resultEnumerator = null;
                 }
 
+                if (_sourceEnumerator != null)
+                {
+                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
+                    _sourceEnumerator = null;
+                }
+
                 _currentSource = default;
 
                 await base.DisposeAsync().ConfigureAwait(false);
@@ -616,18 +616,18 @@ namespace System.Linq
 
             public override async ValueTask DisposeAsync()
             {
-                if (_sourceEnumerator != null)
-                {
-                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
-                    _sourceEnumerator = null;
-                }
-
                 if (_resultEnumerator != null)
                 {
                     await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                     _resultEnumerator = null;
                 }
 
+                if (_sourceEnumerator != null)
+                {
+                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
+                    _sourceEnumerator = null;
+                }
+
                 _currentSource = default;
 
                 await base.DisposeAsync().ConfigureAwait(false);
@@ -718,18 +718,18 @@ namespace System.Linq
 
             public override async ValueTask DisposeAsync()
             {
-                if (_sourceEnumerator != null)
-                {
-                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
-                    _sourceEnumerator = null;
-                }
-
                 if (_resultEnumerator != null)
                 {
                     await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                     _resultEnumerator = null;
                 }
 
+                if (_sourceEnumerator != null)
+                {
+                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
+                    _sourceEnumerator = null;
+                }
+
                 await base.DisposeAsync().ConfigureAwait(false);
             }
 
@@ -816,18 +816,18 @@ namespace System.Linq
 
             public override async ValueTask DisposeAsync()
             {
-                if (_sourceEnumerator != null)
-                {
-                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
-                    _sourceEnumerator = null;
-                }
-
                 if (_resultEnumerator != null)
                 {
                     await _resultEnumerator.DisposeAsync().ConfigureAwait(false);
                     _resultEnumerator = null;
                 }
 
+                if (_sourceEnumerator != null)
+                {
+                    await _sourceEnumerator.DisposeAsync().ConfigureAwait(false);
+                    _sourceEnumerator = null;
+                }
+
                 await base.DisposeAsync().ConfigureAwait(false);
             }