From: David Kastrup Date: Tue, 7 Jul 2015 13:23:21 +0000 (+0200) Subject: Issue 2608: Lyrics iteration can't handle some unusual setups X-Git-Tag: release/2.19.24-1~32 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=1ad9b26da316e538a604e977d870af7185da5bc6;p=lilypond.git Issue 2608: Lyrics iteration can't handle some unusual setups This avoids continued use of an associated Voice context that is no longer associated with any iterators. --- diff --git a/lily/lyric-combine-music-iterator.cc b/lily/lyric-combine-music-iterator.cc index b64251beed..336b167f2e 100644 --- a/lily/lyric-combine-music-iterator.cc +++ b/lily/lyric-combine-music-iterator.cc @@ -161,7 +161,8 @@ Lyric_combine_music_iterator::run_always () const bool Lyric_combine_music_iterator::ok () const { - return lyric_iter_ && lyric_iter_->ok (); + return lyric_iter_ && lyric_iter_->ok () + && !(music_context_ && music_context_->is_removable ()); } void diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index fadb35d6b4..bc576bf3cc 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -96,7 +96,10 @@ get_voice_to_lyrics (Context *lyrics) SCM avc = lyrics->get_property ("associatedVoiceContext"); if (Context *c = unsmob (avc)) - return c; + { + if (!c->is_removable ()) + return c; + } SCM voice_name = lyrics->get_property ("associatedVoice"); string nm = lyrics->id_string ();