From e09ef36b34c8462a7ec3948df31b056d2c695a4c Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sat, 23 Jun 2007 17:45:16 -0300 Subject: [PATCH] Fix #383. Checks for stem == NULL. --- input/regression/tuplet-no-stems.ly | 28 ++++++++++++++++++++++++++++ lily/tuplet-bracket.cc | 9 +++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 input/regression/tuplet-no-stems.ly diff --git a/input/regression/tuplet-no-stems.ly b/input/regression/tuplet-no-stems.ly new file mode 100644 index 0000000000..c15a3b2cf0 --- /dev/null +++ b/input/regression/tuplet-no-stems.ly @@ -0,0 +1,28 @@ +\header{ + texidoc = "Removing Stem_engraver doesn't cause crashes." +} + + +\version "2.10.27" + +\layout{ + \context{ + \TabStaff + \override TimeSignature #'stencil = ##f + } + \context{ + \TabVoice + \remove Beam_engraver + \remove Stem_engraver + \override TupletBracket #'number-visibility = ##f + } +} + +partition = { + \times 2/3 { f8 g a } +} + + +\new TabStaff { + \partition +} diff --git a/lily/tuplet-bracket.cc b/lily/tuplet-bracket.cc index 06411f72f2..b27c783208 100644 --- a/lily/tuplet-bracket.cc +++ b/lily/tuplet-bracket.cc @@ -91,8 +91,10 @@ Tuplet_bracket::parallel_beam (Grob *me_grob, vector const &cols, Drul_array stems (Note_column::get_stem (cols[0]), Note_column::get_stem (cols.back ())); - if (dynamic_cast (stems[RIGHT])->get_column () - != me->get_bound (RIGHT)->get_column ()) + if (!stems[RIGHT] + || !stems[LEFT] + || (dynamic_cast (stems[RIGHT])->get_column () + != me->get_bound (RIGHT)->get_column ())) return 0; Drul_array beams; @@ -759,6 +761,9 @@ Tuplet_bracket::calc_cross_staff (SCM smob) for (vsize i = 0; i < cols.size (); i++) { Grob *stem = unsmob_grob (cols[i]->get_object ("stem")); + if (!stem) + continue; + if (to_boolean (stem->get_property ("cross-staff"))) return SCM_BOOL_T; -- 2.39.5