From: Joe Neeman Date: Sun, 4 Feb 2007 16:21:16 +0000 (+0200) Subject: Prevent empty systems from crashing the page-breaker. Fixes #276 X-Git-Tag: release/2.11.16-1^2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=5d43bcdb7edc50afcb5a8600bd5b23e5f1cfc6cd;p=lilypond.git Prevent empty systems from crashing the page-breaker. Fixes #276 --- diff --git a/lily/constrained-breaking.cc b/lily/constrained-breaking.cc index c688be6a1b..d8235760ac 100644 --- a/lily/constrained-breaking.cc +++ b/lily/constrained-breaking.cc @@ -342,7 +342,6 @@ Constrained_breaking::initialize () ragged_right_); for (vsize i = 0; i + 1 < breaks_.size (); i++) { - Real max_ext = 0; for (vsize j = i + 1; j < breaks_.size (); j++) { int start = Paper_column::get_rank (all_[breaks_[i]]); @@ -373,8 +372,7 @@ Constrained_breaking::initialize () line.turn_permission_ = min_permission (line.page_permission_, line.turn_permission_); - max_ext = max (max_ext, extent.length ()); - line.extent_ = extent; + line.extent_ = extent.is_empty () ? Interval (0, 0) : extent; line.padding_ = padding; line.space_ = space; line.inverse_hooke_ = extent.length () + space; diff --git a/lily/page-spacing.cc b/lily/page-spacing.cc index 7803cc06f2..9b2ec33615 100644 --- a/lily/page-spacing.cc +++ b/lily/page-spacing.cc @@ -53,8 +53,8 @@ Page_spacing::append_system (const Line_details &line) rod_height_ += last_line_.padding_; rod_height_ += line.extent_.length (); - spring_len_ += line.space_; - inverse_spring_k_ += line.inverse_hooke_; + spring_len_ += max (0.1, line.space_); + inverse_spring_k_ += max (0.1, line.inverse_hooke_); last_line_ = line; @@ -70,8 +70,8 @@ Page_spacing::prepend_system (const Line_details &line) last_line_ = line; rod_height_ += line.extent_.length (); - spring_len_ += line.space_; - inverse_spring_k_ += line.inverse_hooke_; + spring_len_ += max (0.1, line.space_); + inverse_spring_k_ += max (0.1, line.inverse_hooke_); calc_force (); }