- 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)
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<bool> expands = pitch_interval_.add_point (pitch);
if (expands[UP])