on develop help sign in
Merge pull request #389 from reflex-frp/fix-profiled-infinite-recursion-for-merge-incremental

Fix Reflex.Profiled infinite recursion for merge incremental

commit44914904854737643165def2693e1f07fe7656ab authorJohn Ericson <John.Ericson@Obsidian.Systems> dateWed 5 Feb 2020, 13:46 (7 years ago) parentfc801a8f2e34d4
2 files changed+10−2
ChangeLog.md+8 src/Reflex/Profiled.hs+2−2
ChangeLog.md+8
@@ -1,5 +1,13 @@
11# Revision history for reflex
22
3+## 0.6.5
4+
5+* Fix a bug in the Reflex Profiled transformer where
6+ `Reflex.Class.mergeIncrementalG` and
7+ `Reflex.Class.mergeIncrementalWithMoveG` implementations referenced
8+ itself instead of the inner transformed timeline, causing an
9+ infinite loop.
10+
311## 0.6.4
412
513* Support GHC 8.8
src/Reflex/Profiled.hs+2−2
@@ -147,8 +147,8 @@ instance Reflex t => Reflex (ProfiledTimeline t) where
147147 updated (Dynamic_Profiled d) = coerce $ profileEvent $ updated d
148148 unsafeBuildDynamic (ProfiledM a0) (Event_Profiled a') = coerce $ unsafeBuildDynamic a0 a'
149149 unsafeBuildIncremental (ProfiledM a0) (Event_Profiled a') = coerce $ unsafeBuildIncremental a0 a'
150− mergeIncrementalG nt = (Event_Profiled . coerce) #. mergeIncrementalG nt
151− mergeIncrementalWithMoveG nt = (Event_Profiled . coerce) #. mergeIncrementalWithMoveG nt
150+ mergeIncrementalG nt res = Event_Profiled $ mergeIncrementalG (coerce nt) (coerce res)
151+ mergeIncrementalWithMoveG nt res = Event_Profiled $ mergeIncrementalWithMoveG (coerce nt) (coerce res)
152152 currentIncremental (Incremental_Profiled i) = coerce $ currentIncremental i
153153 updatedIncremental (Incremental_Profiled i) = coerce $ profileEvent $ updatedIncremental i
154154 incrementalToDynamic (Incremental_Profiled i) = coerce $ incrementalToDynamic i