Browse Source

Optimizing layout of Case.

Bart De Smet 8 years ago
parent
commit
4794774418
1 changed files with 5 additions and 8 deletions
  1. 5 8
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Case.cs

+ 5 - 8
Rx.NET/Source/src/System.Reactive/Linq/Observable/Case.cs

@@ -31,27 +31,24 @@ namespace System.Reactive.Linq.ObservableImpl
 
 
         protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
         protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
         {
         {
-            var sink = new _(this, observer, cancel);
+            var sink = new _(observer, cancel);
             setSink(sink);
             setSink(sink);
-            return sink.Run();
+            return sink.Run(this);
         }
         }
 
 
         private sealed class _ : Sink<TResult>, IObserver<TResult>
         private sealed class _ : Sink<TResult>, IObserver<TResult>
         {
         {
-            private readonly Case<TValue, TResult> _parent;
-
-            public _(Case<TValue, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
+            public _(IObserver<TResult> observer, IDisposable cancel)
                 : base(observer, cancel)
                 : base(observer, cancel)
             {
             {
-                _parent = parent;
             }
             }
 
 
-            public IDisposable Run()
+            public IDisposable Run(Case<TValue, TResult> parent)
             {
             {
                 var result = default(IObservable<TResult>);
                 var result = default(IObservable<TResult>);
                 try
                 try
                 {
                 {
-                    result = _parent.Eval();
+                    result = parent.Eval();
                 }
                 }
                 catch (Exception exception)
                 catch (Exception exception)
                 {
                 {