Ver código fonte

Merge pull request #362 from Reactive-Extensions/WeGotWeakRefOfTNow

Removing checks for WeakReference<T>
Bart J.F. De Smet 8 anos atrás
pai
commit
e64b9d8855

+ 0 - 46
Rx.NET/Source/src/System.Reactive/Internal/SystemClock.cs

@@ -2,7 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 // See the LICENSE file in the project root for more information. 
 
 
-using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.ComponentModel;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
@@ -22,11 +21,7 @@ namespace System.Reactive.PlatformServices
     {
     {
         private static Lazy<ISystemClock> s_serviceSystemClock = new Lazy<ISystemClock>(InitializeSystemClock);
         private static Lazy<ISystemClock> s_serviceSystemClock = new Lazy<ISystemClock>(InitializeSystemClock);
         private static Lazy<INotifySystemClockChanged> s_serviceSystemClockChanged = new Lazy<INotifySystemClockChanged>(InitializeSystemClockChanged);
         private static Lazy<INotifySystemClockChanged> s_serviceSystemClockChanged = new Lazy<INotifySystemClockChanged>(InitializeSystemClockChanged);
-#if NO_WEAKREFOFT
-        private static readonly HashSet<WeakReference> s_systemClockChanged = new HashSet<WeakReference>();
-#else
         private static readonly HashSet<WeakReference<LocalScheduler>> s_systemClockChanged = new HashSet<WeakReference<LocalScheduler>>();
         private static readonly HashSet<WeakReference<LocalScheduler>> s_systemClockChanged = new HashSet<WeakReference<LocalScheduler>>();
-#endif
         private static IDisposable s_systemClockChangedHandlerCollector;
         private static IDisposable s_systemClockChangedHandlerCollector;
 
 
         private static int _refCount;
         private static int _refCount;
@@ -69,13 +64,8 @@ namespace System.Reactive.PlatformServices
             {
             {
                 foreach (var entry in s_systemClockChanged)
                 foreach (var entry in s_systemClockChanged)
                 {
                 {
-#if NO_WEAKREFOFT
-                    var scheduler = entry.Target as LocalScheduler;
-                    if (scheduler != null)
-#else
                     var scheduler = default(LocalScheduler);
                     var scheduler = default(LocalScheduler);
                     if (entry.TryGetTarget(out scheduler))
                     if (entry.TryGetTarget(out scheduler))
-#endif
                     {
                     {
                         scheduler.SystemClockChanged(sender, e);
                         scheduler.SystemClockChanged(sender, e);
                     }
                     }
@@ -109,11 +99,7 @@ namespace System.Reactive.PlatformServices
             //
             //
             lock (s_systemClockChanged)
             lock (s_systemClockChanged)
             {
             {
-#if NO_WEAKREFOFT
-                s_systemClockChanged.Add(new WeakReference(scheduler, false));
-#else
                 s_systemClockChanged.Add(new WeakReference<LocalScheduler>(scheduler));
                 s_systemClockChanged.Add(new WeakReference<LocalScheduler>(scheduler));
-#endif
 
 
                 if (s_systemClockChanged.Count == 1)
                 if (s_systemClockChanged.Count == 1)
                 {
                 {
@@ -137,29 +123,16 @@ namespace System.Reactive.PlatformServices
             //
             //
             lock (s_systemClockChanged)
             lock (s_systemClockChanged)
             {
             {
-#if NO_WEAKREFOFT
-                var remove = default(HashSet<WeakReference>);
-#else
                 var remove = default(HashSet<WeakReference<LocalScheduler>>);
                 var remove = default(HashSet<WeakReference<LocalScheduler>>);
-#endif
 
 
                 foreach (var handler in s_systemClockChanged)
                 foreach (var handler in s_systemClockChanged)
                 {
                 {
-#if NO_WEAKREFOFT
-                    var scheduler = handler.Target as LocalScheduler;
-                    if (scheduler == null)
-#else
                     var scheduler = default(LocalScheduler);
                     var scheduler = default(LocalScheduler);
                     if (!handler.TryGetTarget(out scheduler))
                     if (!handler.TryGetTarget(out scheduler))
-#endif
                     {
                     {
                         if (remove == null)
                         if (remove == null)
                         {
                         {
-#if NO_WEAKREFOFT
-                            remove = new HashSet<WeakReference>();
-#else
                             remove = new HashSet<WeakReference<LocalScheduler>>();
                             remove = new HashSet<WeakReference<LocalScheduler>>();
-#endif
                         }
                         }
 
 
                         remove.Add(handler);
                         remove.Add(handler);
@@ -254,23 +227,4 @@ namespace System.Reactive.PlatformServices
         /// </summary>
         /// </summary>
         public DateTimeOffset NewTime { get; private set; }
         public DateTimeOffset NewTime { get; private set; }
     }
     }
-
-#if NO_WEAKREFOFT
-    class WeakReference<T>
-        where T : class
-    {
-        private readonly WeakReference _weakReference;
-
-        public WeakReference(T value)
-        {
-            _weakReference = new WeakReference(value);
-        }
-
-        public bool TryGetTarget(out T value)
-        {
-            value = (T)_weakReference.Target;
-            return value != null;
-        }
-    }
-#endif
 }
 }