]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 3923: Use apply instead of eval for timestep finalizations
authorDavid Kastrup <dak@gnu.org>
Sun, 18 May 2014 14:33:55 +0000 (16:33 +0200)
committerDavid Kastrup <dak@gnu.org>
Sat, 24 May 2014 13:20:49 +0000 (15:20 +0200)
lily/global-context.cc
lily/property-iterator.cc

index 5aa70669dd259711b9daf4dae30bc3405a09ab64..f0f138f324336c338543c737c924610b0573d0b4 100644 (file)
@@ -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.  */
index 53d88d548ca6544f5f8c00ec075dcced72cf54ac..d7afdde905e1aa678f78a98241853278f8b3369a 100644 (file)
@@ -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));
     }
 }