-MAKE_SCHEME_CALLBACK (Push_property_iterator, once_finalization, 2);
-SCM
-Push_property_iterator::once_finalization (SCM ctx, SCM music)
-{
- Music *mus = unsmob_music (music);
- Context *c = unsmob_context (ctx);
-
- SCM sym = mus->get_property ("symbol");
- if (check_grob (mus, sym))
- {
- SCM grob_property_path = get_property_path (mus);
-
- send_stream_event (c, "Revert", mus->origin (),
- ly_symbol2scm ("symbol"), sym,
- ly_symbol2scm ("property-path"), grob_property_path);
- }
- return SCM_UNSPECIFIED;
-}
-
-void
-Push_property_iterator::do_quit ()
-{
- if (to_boolean (get_music ()->get_property ("once")))
- {
- SCM trans = get_outlet ()->self_scm ();
- 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));
- }
-}
-