X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fslur-scoring.cc;h=34e20519c96c0ea34afd3ff627abe31b7411f7d2;hb=78f563e58de2de28fd17067fd434a42cb9f055a5;hp=618786867efff0fc4352addff0882cc1607e1d12;hpb=a7ef972d7e2275c68089db3e0be3fdb19cb7b458;p=lilypond.git diff --git a/lily/slur-scoring.cc b/lily/slur-scoring.cc index 618786867e..34e20519c9 100644 --- a/lily/slur-scoring.cc +++ b/lily/slur-scoring.cc @@ -74,12 +74,11 @@ broken_trend_y (Slur_score_state const &state, Direction hdir) Real by = 0.0; if (Spanner *mother = dynamic_cast (state.slur_->original ())) { - vsize k = broken_spanner_index (state.slur_); - int j = int (k) + hdir; - if (j < 0 || vsize (j) >= mother->broken_intos_.size ()) + Grob *neighbor = mother->broken_neighbor (hdir); + if (!neighbor) return by; - Grob *neighbor = mother->broken_intos_[j]; + Spanner *common_mother = dynamic_cast (state.common_[Y_AXIS]->original ()); int common_k @@ -108,13 +107,8 @@ Slur_score_state::set_next_direction () if (extremes_[RIGHT].note_column_) return; - if (Spanner *mother = dynamic_cast (slur_->original ())) + if (Grob *neighbor = slur_->broken_neighbor (RIGHT)) { - vsize j = 1 + broken_spanner_index (slur_); - if (j >= mother->broken_intos_.size ()) - return; - - Grob *neighbor = mother->broken_intos_[j]; set_grob_direction (neighbor, dir_); } } @@ -230,13 +224,14 @@ Slur_score_state::fill (Grob *me) slur_ = dynamic_cast (me); columns_ = internal_extract_grob_array (me, ly_symbol2scm ("note-columns")); - + if (columns_.empty ()) { me->suicide (); return; } + Slur::replace_breakable_encompass_objects (me); staff_space_ = Staff_symbol_referencer::staff_space (me); Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness")); thickness_ = robust_scm2double (me->get_property ("thickness"), 1.0) * lt;