X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Frhythmic-music-iterator.cc;h=b50122e8bb39df97cb7e33e1a6f9fcd642baa86e;hb=3b84da64116a14f6329b8a3b1d981163c61efbde;hp=1246e3854272ec622ef10e1766a9bb1024e2be96;hpb=bdf74886dc9bcaf01c55677bf2086f4b76a7ef8c;p=lilypond.git diff --git a/lily/rhythmic-music-iterator.cc b/lily/rhythmic-music-iterator.cc index 1246e38542..b50122e8bb 100644 --- a/lily/rhythmic-music-iterator.cc +++ b/lily/rhythmic-music-iterator.cc @@ -47,7 +47,7 @@ Rhythmic_music_iterator::process (Moment m) descend_to_bottom_context (); Context *c = get_outlet (); - Stream_event *ev = get_music ()->to_event (); + Stream_event *ev = get_music ()->to_event (c); SCM arts = ev->get_property ("articulations"); if (scm_is_pair (arts)) @@ -59,17 +59,13 @@ Rhythmic_music_iterator::process (Moment m) SCM unlistened = SCM_EOL; for (; scm_is_pair (arts); arts = scm_cdr (arts)) { - if (scm_is_true - (scm_call_2 - (ly_lily_module_constant ("any"), - ly_lily_module_constant ("ly:is-listened-event-class"), - scm_call_1 - (ly_lily_module_constant ("ly:make-event-class"), - unsmob_stream_event (scm_car (arts)) - ->get_property ("class"))))) - listened = scm_cons (scm_car (arts), listened); + SCM art = scm_car (arts); + + if (c->event_source ()->is_listened_class + (unsmob_stream_event (art)->get_property ("class"))) + listened = scm_cons (art, listened); else - unlistened = scm_cons (scm_car (arts), unlistened); + unlistened = scm_cons (art, unlistened); } ev->set_property ("articulations", scm_reverse_x (unlistened, SCM_EOL)); c->event_source ()->broadcast (ev);