X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fsequential-music-iterator.cc;h=d75713e30783aef542d65d97b1512c3e911c5aab;hb=d6048913c2c793a6298a3e16a1a25c76711463b1;hp=66a479efad0599370f7ce047f8a37426ce4a0c58;hpb=42ab6ff971c06253b34f96ed122836ab88d09cc0;p=lilypond.git diff --git a/lily/sequential-music-iterator.cc b/lily/sequential-music-iterator.cc index 66a479efad..d75713e307 100644 --- a/lily/sequential-music-iterator.cc +++ b/lily/sequential-music-iterator.cc @@ -23,6 +23,7 @@ Sequential_music_iterator::Sequential_music_iterator () cursor_ = 0; here_mom_ = 0; iter_p_ =0; + per_elt_b_ = false; } void @@ -80,6 +81,9 @@ Sequential_music_iterator::~Sequential_music_iterator() void Sequential_music_iterator::do_process_and_next (Moment until) { + if (!iter_p_) + return; + while (1) { Moment local_until = until - here_mom_; @@ -91,7 +95,7 @@ Sequential_music_iterator::do_process_and_next (Moment until) iter_p_->process_and_next (local_until); } - + if (!iter_p_->ok()) { leave_element(); @@ -100,6 +104,9 @@ Sequential_music_iterator::do_process_and_next (Moment until) { start_next_element(); set_sequential_music_translator(); + + if (per_elt_b_) + goto loopexit; // ugh. } else {