+
+ /*
+ iter_p_->ok () is tautology, but what the heck.
+ */
+ if (iter_p_ && iter_p_->ok())
+ descend_to_child ();
+
+}
+
+
+/*
+ maintain invariants: change cursor, iter and here_mom_ in one fell
+ swoop.
+*/
+void
+Sequential_music_iterator::next_element ()
+{
+ here_mom_ += iter_p_->music_length_mom ();
+ delete iter_p_;
+ cursor_ = gh_cdr (cursor_);
+
+ if (gh_pair_p (cursor_))
+ iter_p_ = get_iterator_p (unsmob_music (gh_car (cursor_)));
+ else
+ iter_p_ = 0;