From a281c854e3d3fa55dda8c72dae42f386455a3cb0 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sun, 18 May 2014 16:33:55 +0200 Subject: [PATCH 1/1] Issue 3923: Use apply instead of eval for timestep finalizations --- lily/global-context.cc | 4 +--- lily/property-iterator.cc | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/lily/global-context.cc b/lily/global-context.cc index 5aa70669dd..f0f138f324 100644 --- a/lily/global-context.cc +++ b/lily/global-context.cc @@ -181,9 +181,7 @@ Global_context::apply_finalizations () SCM lst = get_property ("finalizations"); set_property ("finalizations", SCM_EOL); for (SCM s = lst; scm_is_pair (s); s = scm_cdr (s)) - - /* TODO: make safe. */ - scm_primitive_eval (scm_car (s)); + scm_apply_0 (scm_caar (s), scm_cdar (s)); } /* Add a function to execute before stepping to the next time step. */ diff --git a/lily/property-iterator.cc b/lily/property-iterator.cc index 53d88d548c..d7afdde905 100644 --- a/lily/property-iterator.cc +++ b/lily/property-iterator.cc @@ -52,9 +52,9 @@ Property_iterator::process (Moment mom) if (once) { Global_context *tg = get_outlet ()->get_global_context (); - tg->add_finalization (scm_list_n (once_finalization_proc, + tg->add_finalization (scm_list_4 (once_finalization_proc, o->self_scm (), m->self_scm (), - ly_quote_scm (previous_value), SCM_UNDEFINED)); + previous_value)); } Simple_music_iterator::process (mom); @@ -168,8 +168,8 @@ Push_property_iterator::do_quit () SCM music = get_music ()->self_scm (); Global_context *tg = get_outlet ()->get_global_context (); - tg->add_finalization (scm_list_n (once_finalization_proc, - trans, music, SCM_UNDEFINED)); + tg->add_finalization (scm_list_3 (once_finalization_proc, + trans, music)); } } -- 2.39.2