From: David Kastrup Date: Sun, 18 May 2014 14:33:55 +0000 (+0200) Subject: Issue 3923: Use apply instead of eval for timestep finalizations X-Git-Tag: release/2.19.7-1~5 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=a281c854e3d3fa55dda8c72dae42f386455a3cb0;p=lilypond.git Issue 3923: Use apply instead of eval for timestep finalizations --- 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)); } }