From: Han-Wen Nienhuys Date: Sat, 20 Aug 2005 23:31:39 +0000 (+0000) Subject: (do_announces): move recursion call out X-Git-Tag: release/2.7.7~25 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=69d88b869307a006e42d31076861403786ff599d;p=lilypond.git (do_announces): move recursion call out of while loop. --- diff --git a/ChangeLog b/ChangeLog index 926c894c08..2219917fc7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2005-08-21 Han-Wen Nienhuys + * lily/engraver-group.cc (do_announces): move recursion call out + of while loop. + * lily/drum-note-performer.cc (class Drum_note_performer): use process_music everywhere. diff --git a/lily/engraver-group.cc b/lily/engraver-group.cc index 6c2c4685fb..ff0271515c 100644 --- a/lily/engraver-group.cc +++ b/lily/engraver-group.cc @@ -93,19 +93,19 @@ Engraver_group::pending_grob_count () const void Engraver_group::do_announces () { - do + for (SCM s = context ()->children_contexts (); + scm_is_pair (s); s = scm_cdr (s)) { - for (SCM s = context ()->children_contexts (); - scm_is_pair (s); s = scm_cdr (s)) - { - Context *c = unsmob_context (scm_car (s)); - Engraver_group *group - = dynamic_cast (c->implementation ()); - if (group) - group->do_announces (); - } + Context *c = unsmob_context (scm_car (s)); + Engraver_group *group + = dynamic_cast (c->implementation ()); + if (group) + group->do_announces (); + } - while (1) + do + { + while (1) { precomputed_translator_foreach (PROCESS_ACKNOWLEDGED); if (announce_infos_.size () == 0) diff --git a/lily/performer-group.cc b/lily/performer-group.cc index 64bd897f20..a1e164b7a8 100644 --- a/lily/performer-group.cc +++ b/lily/performer-group.cc @@ -62,6 +62,16 @@ performer_each (SCM list, Performer_method method) void Performer_group::do_announces () { + for (SCM s = context ()->children_contexts (); + scm_is_pair (s); s = scm_cdr (s)) + { + Context *c = unsmob_context (scm_car (s)); + Performer_group *group + = dynamic_cast (c->implementation ()); + if (group) + group->do_announces (); + } + while (1) { performer_each (get_simple_trans_list (),