]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/tuplet-engraver.cc
Merge branch 'master' of git://git.sv.gnu.org/lilypond
[lilypond.git] / lily / tuplet-engraver.cc
index 946fd1d80272e03d4266f024a8b7e25891d6acbd..66930ce6bd892abff022f6ebfd1462b52c347e55 100644 (file)
@@ -44,8 +44,10 @@ public:
 
 protected:
   vector<Tuplet_description> tuplets_;
+  vector<Tuplet_description> new_tuplets_;
   vector<Tuplet_description> stopped_tuplets_;
   vector<Spanner*> last_tuplets_;
+  
   DECLARE_ACKNOWLEDGER (note_column);
   DECLARE_TRANSLATOR_LISTENER (tuplet_span);
   virtual void finalize ();
@@ -62,7 +64,7 @@ Tuplet_engraver::listen_tuplet_span (Stream_event *ev)
     {
       Tuplet_description d;
       d.event_ = ev;
-      tuplets_.push_back (d);
+      new_tuplets_.push_back (d);
     }
   else if (dir == STOP && tuplets_.size ())
     {
@@ -70,7 +72,8 @@ Tuplet_engraver::listen_tuplet_span (Stream_event *ev)
       tuplets_.pop_back ();
     }
   else 
-    programming_error (_ ("invalid direction of tuplet-span-event"));
+    programming_error (_f ("direction of %s invalid: %d",
+                          "tuplet-span-event", int (dir)));
 }
 
 void
@@ -105,6 +108,8 @@ Tuplet_engraver::process_music ()
     }
   stopped_tuplets_.clear ();
 
+  concat (tuplets_, new_tuplets_);
+  new_tuplets_.clear ();
   for (vsize j = tuplets_.size (); j > 0; j--)
     {
       /* i goes from size-1 downto 0, inclusively */