]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/vertical-align-engraver.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / vertical-align-engraver.cc
index 890490069c89df1af85aef63253aeeb5de9a7168..8b8d04ea0cb8cc6cbab90c8b81f11828bcfe9ac6 100644 (file)
@@ -98,7 +98,7 @@ Vertical_align_engraver::acknowledge_axis_group (Grob_info i)
 {
   if (qualifies (i))
     {
-      std::string id = i.context ()->id_string ();
+      string id = i.context ()->id_string ();
 
       scm_hash_set_x (id_to_group_hashtab_, scm_makfrom0str (id.c_str ()),
                      i.grob ()->self_scm ());
@@ -113,23 +113,24 @@ Vertical_align_engraver::acknowledge_axis_group (Grob_info i)
       Grob *after_grob = unsmob_grob (after);
 
       Align_interface::add_element (valign_, i.grob ());
-
+       
       if (before_grob || after_grob)
        {
          Grob_array *ga = unsmob_grob_array (valign_->get_object ("elements"));
-         Link_array<Grob> &arr = ga->array_reference ();
+         vector<Grob*> &arr = ga->array_reference ();
 
-         Grob *added = arr.pop ();
-         for (int i = 0; i < arr.size (); i++)
+         Grob *added = arr.back ();
+         arr.pop_back ();
+         for (vsize i = 0; i < arr.size (); i++)
            {
              if (arr[i] == before_grob)
                {
-                 arr.insert (added, i);
+                 arr.insert (arr.begin () + i, added);
                  break;
                }
              else if (arr[i] == after_grob)
                {
-                 arr.insert (added, i + 1);
+                 arr.insert (arr.begin () + i + 1, added);
                  break;
                }
            }