From 68fdcfe453ddcc300db7e57599e66ff49c9ca901 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Fri, 27 Jan 2012 17:58:45 +0100 Subject: [PATCH] Another fix for issue 2247: strip music-wrapper-music right in the parser. --- lily/event-chord-iterator.cc | 5 +---- lily/parser.yy | 6 ++++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lily/event-chord-iterator.cc b/lily/event-chord-iterator.cc index 4f3c081e26..899287a999 100644 --- a/lily/event-chord-iterator.cc +++ b/lily/event-chord-iterator.cc @@ -47,10 +47,7 @@ Event_chord_iterator::process (Moment m) scm_is_pair (s); s = scm_cdr (s)) { Music *mus = unsmob_music (scm_car (s)); - while (mus && mus->is_mus_type ("music-wrapper-music")) - mus = unsmob_music (mus->get_property ("element")); - if (mus) - report_event (mus); + report_event (mus); } for (SCM s = get_music ()->get_property ("events"); scm_is_pair (s); s = scm_cdr (s)) diff --git a/lily/parser.yy b/lily/parser.yy index 0dd2c967ed..22a45b2797 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -2149,8 +2149,10 @@ chord_body_element: { Music *m = unsmob_music ($1); - while (m && m->is_mus_type ("music-wrapper-music")) - m = unsmob_music (m->get_property ("element")); + while (m && m->is_mus_type ("music-wrapper-music")) { + $$ = m->get_property ("element"); + m = unsmob_music ($$); + } if (!(m && m->is_mus_type ("rhythmic-event"))) { parser->parser_error (@$, _ ("not a rhythmic event")); -- 2.39.5