From: Joe Neeman Date: Sat, 7 Jul 2007 01:25:50 +0000 (+1000) Subject: don't crash on NaNs in skyline and page-breaking X-Git-Tag: release/2.11.28-1~27 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=1e2d07526517e537ecd300fc667c48d9c3710e33;p=lilypond.git don't crash on NaNs in skyline and page-breaking --- diff --git a/lily/constrained-breaking.cc b/lily/constrained-breaking.cc index 1cce9bd66e..0838dea031 100644 --- a/lily/constrained-breaking.cc +++ b/lily/constrained-breaking.cc @@ -372,7 +372,10 @@ Constrained_breaking::initialize () line.turn_permission_ = min_permission (line.page_permission_, line.turn_permission_); - line.extent_ = extent.is_empty () ? Interval (0, 0) : extent; + line.extent_ = (extent.is_empty () + || isnan (extent[LEFT]) + || isnan (extent[RIGHT])) + ? Interval (0, 0) : extent; line.padding_ = padding; line.space_ = space; line.inverse_hooke_ = extent.length () + space; diff --git a/lily/skyline.cc b/lily/skyline.cc index c935660c6e..d6ccd83529 100644 --- a/lily/skyline.cc +++ b/lily/skyline.cc @@ -419,6 +419,13 @@ Skyline::insert (Box const &b, Real horizon_padding, Axis a) list other_bld; list my_bld; + if (isnan (b[other_axis (a)][LEFT]) + || isnan (b[other_axis (a)][RIGHT])) + { + programming_error ("insane box for skyline"); + return; + } + /* do the same filtering as in Skyline (vector const&, etc.) */ Interval iv = b[a]; iv.widen (horizon_padding);