]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music-wrapper-iterator.cc
release: 1.2.8
[lilypond.git] / lily / music-wrapper-iterator.cc
index e282bded8c60b7c1c43635810cfff418e9ee2b31..1f89d771c6740413f9d5c1b5db101fd23399d81a 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1998--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 
@@ -27,7 +27,8 @@ Music_wrapper_iterator::do_print () const
 void
 Music_wrapper_iterator::construct_children ()
 {
-  child_iter_p_ = get_iterator_p (music_wrapper_l ()->element_p_);  
+  child_iter_p_ =
+    get_iterator_p (dynamic_cast<Music_wrapper const*> (music_l_)->element_l ());
 }
 
 Music_wrapper_iterator::~Music_wrapper_iterator ()
@@ -35,16 +36,11 @@ Music_wrapper_iterator::~Music_wrapper_iterator ()
   delete child_iter_p_;
 }
 
-Music_wrapper*
-Music_wrapper_iterator::music_wrapper_l () const
-{
-  return (Music_wrapper*) music_l_;
-}
 
 bool
 Music_wrapper_iterator::ok () const
 {
-  return child_iter_p_->ok ();
+  return child_iter_p_ && child_iter_p_->ok ();
 }
 
 void
@@ -54,9 +50,16 @@ Music_wrapper_iterator::do_process_and_next (Moment m)
   Music_iterator::do_process_and_next (m);
 }
 
+
 Moment
 Music_wrapper_iterator::next_moment () const
 {
   return child_iter_p_->next_moment ();
 }
 
+
+Music_iterator*
+Music_wrapper_iterator::try_music_in_children (Music const *m) const
+{
+  return child_iter_p_->try_music (m);
+}