Skip to content

Commit d060db8

Browse files
fix: call reset_aggregated_jumps! in compiled ImperativeAffect
1 parent 2bdc1a4 commit d060db8

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/systems/imperative_affect.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ function check_assignable(sys, sym)
164164
end
165165
end
166166

167-
function compile_functional_affect(affect::ImperativeAffect, sys; kwargs...)
167+
function compile_functional_affect(
168+
affect::ImperativeAffect, sys; reset_jumps = false, kwargs...)
168169
#=
169170
Implementation sketch:
170171
generate observed function (oop), should save to a component array under obs_syms
@@ -244,7 +245,7 @@ function compile_functional_affect(affect::ImperativeAffect, sys; kwargs...)
244245

245246
upd_funs = NamedTuple{mod_names}((setu.((sys,), first.(mod_pairs))...,))
246247

247-
let user_affect = func(affect), ctx = context(affect)
248+
let user_affect = func(affect), ctx = context(affect), reset_jumps = reset_jumps
248249
@inline function (integ)
249250
# update the to-be-mutated values; this ensures that if you do a no-op then nothing happens
250251
modvals = mod_og_val_fun(integ.u, integ.p, integ.t)
@@ -259,6 +260,8 @@ function compile_functional_affect(affect::ImperativeAffect, sys; kwargs...)
259260

260261
# write the new values back to the integrator
261262
_generated_writeback(integ, upd_funs, upd_vals)
263+
264+
reset_jumps && reset_aggregated_jumps!(integ)
262265
end
263266
end
264267
end

0 commit comments

Comments
 (0)