From: Neil Puttock Date: Fri, 19 Jun 2009 22:26:29 +0000 (+0100) Subject: Fix #781. X-Git-Tag: release/2.12.3-1~81 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=90192e0047f4b2c1ebf23ff77f670c7d9e6c2869;p=lilypond.git Fix #781. - don't dereference non-existent event-cause, which may occur if the Ambitus_engraver is erroneously added to both the Staff and Voice contexts: in such a situation, Ambitus_engraver::acknowledge_note_head () will acknowledge an AmbitusNoteHead, which has no event-cause. (cherry picked from commit d511b69c1cb8836bc0b7b49b9f396cf06fef19ac) --- diff --git a/lily/ambitus-engraver.cc b/lily/ambitus-engraver.cc index 202e691d21..2585bd8bc1 100644 --- a/lily/ambitus-engraver.cc +++ b/lily/ambitus-engraver.cc @@ -121,15 +121,15 @@ void Ambitus_engraver::acknowledge_note_head (Grob_info info) { Stream_event *nr = info.event_cause (); - SCM p = nr->get_property ("pitch"); - /* - If the engraver is added to a percussion context, - filter out unpitched note heads. - */ - if (!unsmob_pitch (p)) - return; if (nr && nr->in_event_class ("note-event")) { + SCM p = nr->get_property ("pitch"); + /* + If the engraver is added to a percussion context, + filter out unpitched note heads. + */ + if (!unsmob_pitch (p)) + return; Pitch pitch = *unsmob_pitch (p); Drul_array expands = pitch_interval_.add_point (pitch); if (expands[UP])