From 301db9e8fafc31b76d4a974b2e7a56924f0e80d2 Mon Sep 17 00:00:00 2001 From: Patrick McCarty Date: Sun, 27 Jun 2010 12:57:22 -0700 Subject: [PATCH] Fix #1156. Sometimes the check for the *left* broken neighbor may be a spacer rest, which appears to be a generic Spanner with direction CENTER. An additional check is needed to make sure the grob in question is a Slur or PhrasingSlur, or else an assertion will be raised -- slurs must have a direction of either UP or DOWN. --- lily/slur-scoring.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lily/slur-scoring.cc b/lily/slur-scoring.cc index a43daa3ed4..a1f761acf2 100644 --- a/lily/slur-scoring.cc +++ b/lily/slur-scoring.cc @@ -85,7 +85,9 @@ Slur_score_state::~Slur_score_state () Direction Slur_score_state::slur_direction () const { - if (Grob *left_neighbor = slur_->broken_neighbor (LEFT)) + Grob *left_neighbor = slur_->broken_neighbor (LEFT); + + if (left_neighbor && Slur::has_interface (left_neighbor)) return get_grob_direction (left_neighbor); Direction dir = get_grob_direction (slur_); -- 2.39.5