]> git.donarmstrong.com Git - lilypond.git/commitdiff
Fix GC catastrophe in Slur_proto_engraver::derived_mark
authorDavid Kastrup <dak@gnu.org>
Sat, 24 Oct 2015 11:18:50 +0000 (13:18 +0200)
committerDavid Kastrup <dak@gnu.org>
Sat, 24 Oct 2015 11:18:50 +0000 (13:18 +0200)
In Slur_proto_engraver::Event_info, note_ will be 0 for slurs not
attached to particular note events.  Calling self_scm on it is likely
to be a fatal error.

lily/slur-proto-engraver.cc

index 5accd2c073fddb9fcd4f4f1063f5e434e415bb2c..99e8e8ebfcd54fd87f8ac370466e01f0b45b82ad 100644 (file)
@@ -38,12 +38,14 @@ Slur_proto_engraver::derived_mark () const
   for (vsize i = start_events_.size (); i--;)
     {
       scm_gc_mark (start_events_[i].slur_->self_scm ());
-      scm_gc_mark (start_events_[i].note_->self_scm ());
+      if (start_events_[i].note_)
+        scm_gc_mark (start_events_[i].note_->self_scm ());
     }
   for (vsize i = stop_events_.size (); i--;)
     {
       scm_gc_mark (stop_events_[i].slur_->self_scm ());
-      scm_gc_mark (stop_events_[i].note_->self_scm ());
+      if (stop_events_[i].note_)
+        scm_gc_mark (stop_events_[i].note_->self_scm ());
     }
 }