From: Han-Wen Nienhuys <hanwen@xs4all.nl>
Date: Thu, 9 Nov 2006 13:36:14 +0000 (+0100)
Subject: use Spanner::broken_neighbor() in slur and line spanner.
X-Git-Tag: release/2.10.0-2~23
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d201be6ab14fff72c9cdadd2fff7af5a38b92d6d;p=lilypond.git

use Spanner::broken_neighbor() in slur and line spanner.
---

diff --git a/lily/line-spanner.cc b/lily/line-spanner.cc
index 688cf8db2e..0b6a9fae7f 100644
--- a/lily/line-spanner.cc
+++ b/lily/line-spanner.cc
@@ -222,9 +222,7 @@ Line_spanner::print (SCM smob)
 	anymore. We have to find the piano-staff object.
       */
 
-      int k = broken_spanner_index (me);
-      Spanner *parent_sp = dynamic_cast<Spanner *> (me->original ());
-      Spanner *next_sp = parent_sp->broken_intos_ [k + 1];
+      Spanner *next_sp = me->broken_neighbor (RIGHT);
       Item *next_bound = next_sp->get_bound (RIGHT);
 
       if (next_bound->break_status_dir ())
diff --git a/lily/slur-scoring.cc b/lily/slur-scoring.cc
index 618786867e..ba8f5c80cc 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<Spanner *> (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<Spanner *> (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<Spanner *> (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_);
     }
 }