X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fsimple-music-iterator.cc;h=0497ef770c78df79c8fd38fcfcdeef1fc26affed;hb=d9b43b93f2c885409bafdb157138158f65cc49aa;hp=c4a78e9583a8f9048b2ba200a233ad4d1a7959f4;hpb=45bae7c4e36d595cf545c85a53ff14c95bf4cf9c;p=lilypond.git diff --git a/lily/simple-music-iterator.cc b/lily/simple-music-iterator.cc index c4a78e9583..0497ef770c 100644 --- a/lily/simple-music-iterator.cc +++ b/lily/simple-music-iterator.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2000 Han-Wen Nienhuys + (c) 2000--2002 Han-Wen Nienhuys */ @@ -29,10 +29,18 @@ Simple_music_iterator::ok ()const return last_processed_mom_ < music_length_mom (); } +/* + TODO: remove last_processed_mom_, and the complete shit. We should + only process a simple-music once, and that is at its start. + + Engravers can detect and request the end-moments to be processed as + well. + +*/ Moment Simple_music_iterator::pending_moment ()const { - if (music_l_) + if (last_processed_mom_ < Moment (0)) return Moment (0); else return music_length_mom (); @@ -41,24 +49,25 @@ Simple_music_iterator::pending_moment ()const void Simple_music_iterator::skip (Moment m) { - music_l_ = 0; + /* + docme??!! + + uncommented because setting MUSIC_L_ = 0 causes core dumps with + grace notes. */ + + // music_l_ = 0; + last_processed_mom_ = m; } void Simple_music_iterator::process (Moment m) { -#if 0 /* - try_music () causes trouble for base classes - */ - if (music_l_) - { - bool b = try_music (music_l_); - if (!b) - music_l_->origin ()->warning (_f ("Junking music: `%s'", - classname (music_l_))); - } -#endif + don't do try_music (), since it would make the function useless for + base classes */ + skip (m); } + +IMPLEMENT_CTOR_CALLBACK (Simple_music_iterator);