]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 3849: \parenthesize\p generates programming error
authorDavid Kastrup <dak@gnu.org>
Tue, 2 Sep 2014 17:14:34 +0000 (19:14 +0200)
committerDavid Kastrup <dak@gnu.org>
Mon, 8 Sep 2014 07:32:03 +0000 (09:32 +0200)
Register a grob as the cause for DynamicLineSpanner rather than an event.

lily/dynamic-align-engraver.cc

index 467b1fda785d7e9fa554292f992de97ee8c10c0f..130d1d9f41af7cb1ea52454f6abfb1c3fcb4a6d4 100644 (file)
@@ -44,7 +44,7 @@ protected:
   virtual void stop_translation_timestep ();
 
 private:
-  void create_line_spanner (Stream_event *cause);
+  void create_line_spanner (Grob *cause);
   void set_spanner_bounds (Spanner *line, bool end);
   Spanner *line_;
   Spanner *ended_line_; // Spanner manually broken, don't use it for new grobs
@@ -71,11 +71,10 @@ ADD_ACKNOWLEDGER (Dynamic_align_engraver, footnote_spanner);
 ADD_END_ACKNOWLEDGER (Dynamic_align_engraver, dynamic);
 
 void
-Dynamic_align_engraver::create_line_spanner (Stream_event *event)
+Dynamic_align_engraver::create_line_spanner (Grob *cause)
 {
   if (!line_)
-    line_ = make_spanner ("DynamicLineSpanner",
-                          event ? event->self_scm () : SCM_EOL);
+    line_ = make_spanner ("DynamicLineSpanner", cause->self_scm ());
 }
 
 void
@@ -141,7 +140,7 @@ Dynamic_align_engraver::acknowledge_dynamic (Grob_info info)
         }
     }
 
-  create_line_spanner (cause);
+  create_line_spanner (info.grob ());
   if (Spanner::has_interface (info.grob ()))
     {
       started_.push_back (info.spanner ());