]> git.donarmstrong.com Git - lilypond.git/commitdiff
Another fix for issue 2247: strip music-wrapper-music right in the parser.
authorDavid Kastrup <dak@gnu.org>
Fri, 27 Jan 2012 16:58:45 +0000 (17:58 +0100)
committerDavid Kastrup <dak@gnu.org>
Sat, 28 Jan 2012 19:22:21 +0000 (20:22 +0100)
lily/event-chord-iterator.cc
lily/parser.yy

index 4f3c081e269bd13b6e6a470cf2886c12f9554769..899287a99990036b4ccdf78a0c6638bd56254f40 100644 (file)
@@ -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))
index 0dd2c967ed503379f032e6a54de78659edfd95e2..22a45b279786e62e8fc0d5156d4b5647634fcc2e 100644 (file)
@@ -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"));