]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music-wrapper-iterator.cc
patch::: 1.3.58.jcn2
[lilypond.git] / lily / music-wrapper-iterator.cc
index d5ed47629c241bc482e4a7bde8338bfca3355d8d..69429384dc2dea2385afb37ec423a9c4915fd75d 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--2000 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,15 +36,11 @@ Music_wrapper_iterator::~Music_wrapper_iterator ()
   delete child_iter_p_;
 }
 
-Music_wrapper*
-Music_wrapper_iterator::music_wrapper_l ()
-{
-  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
@@ -53,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);
+}