From: Keith OHara Date: Mon, 16 Sep 2013 05:58:07 +0000 (-0700) Subject: Tuplets: error-checking; issue 3551 X-Git-Tag: release/2.17.27-1~2^2~8 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=31cae8bae49aedd898210420cb5ccb10f34213f3;p=lilypond.git Tuplets: error-checking; issue 3551 lily/tuplet-engraver.cc do not create a TupletBracket if it would have no bounds lily/tuplet-bracket.cc defensive pointer check --- diff --git a/lily/tuplet-bracket.cc b/lily/tuplet-bracket.cc index d211dcae38..1eccaabc06 100644 --- a/lily/tuplet-bracket.cc +++ b/lily/tuplet-bracket.cc @@ -92,8 +92,10 @@ Tuplet_bracket::parallel_beam (Grob *me_grob, vector const &cols, { Spanner *me = dynamic_cast (me_grob); - if (me->get_bound (LEFT)->break_status_dir () - || me->get_bound (RIGHT)->break_status_dir ()) + Item *left = me->get_bound (LEFT); + Item *right = me->get_bound (RIGHT); + if (!left || left->break_status_dir () + || !right || right->break_status_dir ()) return 0; Drul_array stems (Note_column::get_stem (cols[0]), diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 4348044fbe..1fc30d898a 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -107,7 +107,7 @@ Tuplet_engraver::listen_tuplet_span (Stream_event *ev) tuplets_.pop_back (); } else if (!to_boolean (get_property ("skipTypesetting"))) - ev->origin ()->warning (_ ("No tuplet to end")); + ev->origin ()->debug_output (_ ("No tuplet to end")); } else ev->origin ()->programming_error ("direction tuplet-span-event_ invalid."); @@ -155,7 +155,10 @@ Tuplet_engraver::process_music () stopped_tuplets_[i].bracket_->get_bound (LEFT)); } else - programming_error ("stopped tuplet bracket has neither left nor right bound"); + { + warning ("omitting tuplet bracket with neither left nor right bound"); + continue; + } } // todo: scrap last_tuplets_, use stopped_tuplets_ only. // clear stopped_tuplets_ at start_translation_timestep