From b9422b927e1d00b114f2028d86a9b59a5cbf54ed Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sat, 24 Oct 2015 13:18:50 +0200 Subject: [PATCH] Fix GC catastrophe in Slur_proto_engraver::derived_mark 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 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lily/slur-proto-engraver.cc b/lily/slur-proto-engraver.cc index 5accd2c073..99e8e8ebfc 100644 --- a/lily/slur-proto-engraver.cc +++ b/lily/slur-proto-engraver.cc @@ -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 ()); } } -- 2.39.2