From: Mike Solomon Date: Sat, 25 Jun 2011 17:10:50 +0000 (+0200) Subject: Fixes issue 1706, issues a programming error at old assert error. X-Git-Tag: release/2.15.3-1~5 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=7bcdd37be15ece09cd97841137b075a576bbe696;p=lilypond.git Fixes issue 1706, issues a programming error at old assert error. --- diff --git a/input/regression/beam-skip.ly b/input/regression/beam-skip.ly new file mode 100644 index 0000000000..4f1dc3e93a --- /dev/null +++ b/input/regression/beam-skip.ly @@ -0,0 +1,22 @@ + +\header { + texidoc = "Beams over skips do not cause a segfault." +} + +\version "2.15.3" + +\layout { ragged-right = ##t } + +music = { + \clef bass r2 r4 r8 f, + r2 r4 g,8 r + r4 f, 8 r8 r2 +} + +beams = { + \repeat "unfold" 24 { s8[ s ] s[ s]} +} + +\new Staff { + \context Voice << { \beams } { \music}>> +} diff --git a/lily/beam.cc b/lily/beam.cc index 8a30752c38..1bb0a209a8 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -555,6 +555,8 @@ Beam::print (SCM grob) Spanner *me = unsmob_spanner (grob); Grob *commonx = 0; vector segments = get_beam_segments (me, &commonx); + if (!segments.size ()) + return SCM_EOL; Interval span; if (normal_stem_count (me)) @@ -974,7 +976,11 @@ Beam::no_visible_stem_positions (Grob *me, Interval default_value) } Direction dir = get_grob_direction (me); - Real y = head_positions[dir] + + if (!dir) + programming_error ("The beam should have a direction by now."); + + Real y = head_positions.linear_combination (dir) * 0.5 * Staff_symbol_referencer::staff_space (me) + dir * get_beam_translation (me) * (multiplicity.length () + 1);