]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/completion-note-heads-engraver.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / completion-note-heads-engraver.cc
index b313fea1052c88d46ce21e371bce37c4a2034754..6fe80dc30949e0bfb9638141c79bfd93c55ffdd5 100644 (file)
@@ -1,7 +1,7 @@
 /*
   completion-note-heads-engraver.cc -- Completion_heads_engraver
 
-  (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <cctype>
@@ -43,13 +43,13 @@ using namespace std;
 
 class Completion_heads_engraver : public Engraver
 {
-  Link_array<Item> notes_;
-  Link_array<Item> prev_notes_;
-  Link_array<Grob> ties_;
+  vector<Item*> notes_;
+  vector<Item*> prev_notes_;
+  vector<Grob*> ties_;
 
-  Link_array<Item> dots_;
-  Link_array<Music> note_events_;
-  Link_array<Music> scratch_note_events_;
+  vector<Item*> dots_;
+  vector<Music*> note_events_;
+  vector<Music*> scratch_note_events_;
 
   Moment note_end_mom_;
   bool is_first_;
@@ -81,7 +81,7 @@ Completion_heads_engraver::try_music (Music *m)
 {
   if (m->is_mus_type ("note-event"))
     {
-      note_events_.push (m);
+      note_events_.push_back (m);
 
       is_first_ = true;
       Moment musiclen = m->get_length ();
@@ -192,15 +192,14 @@ Completion_heads_engraver::process_music ()
   if (orig && note_dur.get_length () != orig->get_length ())
     {
       if (!scratch_note_events_.size ())
-       for (int i = 0; i < note_events_.size (); i++)
+       for (vsize i = 0; i < note_events_.size (); i++)
          {
            Music *m = note_events_[i]->clone ();
-           scratch_note_events_.push (m);
+           scratch_note_events_.push_back (m);
          }
     }
 
-  for (int i = 0;
-       left_to_do_ && i < note_events_.size (); i++)
+  for (vsize i = 0; left_to_do_ && i < note_events_.size (); i++)
     {
       Music *event = note_events_[i];
       if (scratch_note_events_.size ())
@@ -229,7 +228,7 @@ Completion_heads_engraver::process_music ()
            d->set_property ("dot-count", scm_from_int (dots));
 
          d->set_parent (note, Y_AXIS);
-         dots_.push (d);
+         dots_.push_back (d);
        }
 
       Pitch *pit = unsmob_pitch (event->get_property ("pitch"));
@@ -240,18 +239,18 @@ Completion_heads_engraver::process_music ()
        pos += scm_to_int (c0);
 
       note->set_property ("staff-position", scm_from_int (pos));
-      notes_.push (note);
+      notes_.push_back (note);
     }
 
   if (prev_notes_.size () == notes_.size ())
     {
-      for (int i = 0; i < notes_.size (); i++)
+      for (vsize i = 0; i < notes_.size (); i++)
        {
          Grob *p = make_spanner ("Tie", SCM_EOL);
          Tie::set_head (p, LEFT, prev_notes_[i]);
          Tie::set_head (p, RIGHT, notes_[i]);
 
-         ties_.push (p);
+         ties_.push_back (p);
        }
     }
 
@@ -276,7 +275,7 @@ Completion_heads_engraver::stop_translation_timestep ()
 
   dots_.clear ();
 
-  for (int i = scratch_note_events_.size (); i--;)
+  for (vsize i = scratch_note_events_.size (); i--;)
     scratch_note_events_[i]->unprotect ();
 
   scratch_note_events_.clear ();