on develop help sign in
Fix weak reference problem in fanInt
230c193Ryan Trinkle
src/Reflex/Spider/Internal.hs+1−1
@@ -1500,7 +1500,7 @@ fanInt p =
1500 t <- liftIO $ FastWeakBag.insert sub b
1500 t <- liftIO $ FastWeakBag.insert sub b
1501 currentOcc <- readIORef (_fanInt_occRef self)
1501 currentOcc <- readIORef (_fanInt_occRef self)
1502 (EventSubscription _ (EventSubscribed !heightRef _)) <- readIORef (_fanInt_subscriptionRef self)
1502 (EventSubscription _ (EventSubscribed !heightRef _)) <- readIORef (_fanInt_subscriptionRef self)
1503− return (EventSubscription (FastWeakBag.remove t) $! EventSubscribed heightRef $! toAny $! _fanInt_subscriptionRef self, IntMap.lookup k currentOcc)
1503+ return (EventSubscription (FastWeakBag.remove t) $! EventSubscribed heightRef $! toAny $! (_fanInt_subscriptionRef self, t), IntMap.lookup k currentOcc)
1504
1504
1505{-# INLINABLE getFanSubscribed #-}
1505{-# INLINABLE getFanSubscribed #-}
1506getFanSubscribed :: (Defer (SomeAssignment x) m, Defer (SomeHoldInit x) m, Defer (SomeMergeInit x) m, Defer SomeClear m, HasCurrentHeight x m, Defer (SomeResetCoincidence x) m, HasSpiderTimeline x, m ~ EventM x, GCompare k) => k a -> Fan x k -> Subscriber x a -> m (WeakBagTicket, FanSubscribed x k, Maybe a)
1506getFanSubscribed :: (Defer (SomeAssignment x) m, Defer (SomeHoldInit x) m, Defer (SomeMergeInit x) m, Defer SomeClear m, HasCurrentHeight x m, Defer (SomeResetCoincidence x) m, HasSpiderTimeline x, m ~ EventM x, GCompare k) => k a -> Fan x k -> Subscriber x a -> m (WeakBagTicket, FanSubscribed x k, Maybe a)