Browse Source

Optimizing layouts of Contains.

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

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

@@ -28,14 +28,14 @@ namespace System.Reactive.Linq.ObservableImpl
 
         private sealed class _ : Sink<bool>, IObserver<TSource>
         {
-            // CONSIDER: This sink has a parent reference that can be considered for removal.
-
-            private readonly Contains<TSource> _parent;
+            private readonly TSource _value;
+            private readonly IEqualityComparer<TSource> _comparer;
 
             public _(Contains<TSource> parent, IObserver<bool> observer, IDisposable cancel)
                 : base(observer, cancel)
             {
-                _parent = parent;
+                _value = parent._value;
+                _comparer = parent._comparer;
             }
 
             public void OnNext(TSource value)
@@ -43,7 +43,7 @@ namespace System.Reactive.Linq.ObservableImpl
                 var res = false;
                 try
                 {
-                    res = _parent._comparer.Equals(value, _parent._value);
+                    res = _comparer.Equals(value, _value);
                 }
                 catch (Exception ex)
                 {