X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fconstrained-breaking.cc;h=1efae87e125047bdd317595a6124408fc5c98e4f;hb=c35ad8dd7d98e754c832497531da220936dbf69a;hp=4604f5439d0173ae9c048f448ee341a77644190f;hpb=c74523f061cba5fb50d307ff04e3507c8b36f5c8;p=lilypond.git diff --git a/lily/constrained-breaking.cc b/lily/constrained-breaking.cc index 4604f5439d..1efae87e12 100644 --- a/lily/constrained-breaking.cc +++ b/lily/constrained-breaking.cc @@ -189,7 +189,7 @@ Constrained_breaking::solve (vsize start, vsize end, vsize sys_count) vector Constrained_breaking::best_solution (vsize start, vsize end) { - vsize min_systems = min_system_count (start, end); + vsize min_systems = min_system_count (start, end); vsize max_systems = max_system_count (start, end); Real best_demerits = infinity_f; vector best_so_far; @@ -265,7 +265,7 @@ Constrained_breaking::min_system_count (vsize start, vsize end) int Constrained_breaking::max_system_count (vsize start, vsize end) { - vsize brk = (end >= start_.size ()) ? breaks_.size () : starting_breakpoints_[end]; + vsize brk = (end >= start_.size ()) ? breaks_.size () - 1 : starting_breakpoints_[end]; return brk - starting_breakpoints_[start]; } @@ -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;