|
@@ -30,7 +30,7 @@ namespace System.Reactive.Linq.ObservableImpl
|
|
|
{
|
|
{
|
|
|
private readonly Func<TSource, TKey> _keySelector;
|
|
private readonly Func<TSource, TKey> _keySelector;
|
|
|
private readonly Func<TSource, TElement> _elementSelector;
|
|
private readonly Func<TSource, TElement> _elementSelector;
|
|
|
- private readonly Lookup<TKey, TElement> _lookup;
|
|
|
|
|
|
|
+ private Lookup<TKey, TElement> _lookup;
|
|
|
|
|
|
|
|
public _(ToLookup<TSource, TKey, TElement> parent, IObserver<ILookup<TKey, TElement>> observer)
|
|
public _(ToLookup<TSource, TKey, TElement> parent, IObserver<ILookup<TKey, TElement>> observer)
|
|
|
: base(observer)
|
|
: base(observer)
|
|
@@ -48,13 +48,22 @@ namespace System.Reactive.Linq.ObservableImpl
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
|
|
+ _lookup = null;
|
|
|
ForwardOnError(ex);
|
|
ForwardOnError(ex);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public override void OnError(Exception error)
|
|
|
|
|
+ {
|
|
|
|
|
+ _lookup = null;
|
|
|
|
|
+ ForwardOnError(error);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public override void OnCompleted()
|
|
public override void OnCompleted()
|
|
|
{
|
|
{
|
|
|
- ForwardOnNext(_lookup);
|
|
|
|
|
|
|
+ var lookup = _lookup;
|
|
|
|
|
+ _lookup = null;
|
|
|
|
|
+ ForwardOnNext(lookup);
|
|
|
ForwardOnCompleted();
|
|
ForwardOnCompleted();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|