X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fspaceable-grob.cc;h=2088284412eca98598941367477a85e3145fb8e2;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=638a4fa83bbc258654386729e4c3b87778de7bfc;hpb=3a46c0c5944963e1b3e5dc0bc5c5f843e908d884;p=lilypond.git diff --git a/lily/spaceable-grob.cc b/lily/spaceable-grob.cc index 638a4fa83b..2088284412 100644 --- a/lily/spaceable-grob.cc +++ b/lily/spaceable-grob.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2000--2007 Han-Wen Nienhuys + (c) 2000--2008 Han-Wen Nienhuys */ #include "spaceable-grob.hh" @@ -59,8 +59,8 @@ void Spaceable_grob::add_spring (Grob *me, Grob *other, Spring sp) { SCM ideal = me->get_object ("ideal-distances"); - sp.other_ = other; - ideal = scm_cons (sp.smobbed_copy (), ideal); + + ideal = scm_cons (scm_cons (sp.smobbed_copy (), other->self_scm ()), ideal); me->set_object ("ideal-distances", ideal); } @@ -73,10 +73,10 @@ Spaceable_grob::get_spring (Grob *this_col, Grob *next_col) !spring && scm_is_pair (s); s = scm_cdr (s)) { - Spring *sp = unsmob_spring (scm_car (s)); - - if (sp && sp->other_ == next_col) - spring = sp; + if (scm_is_pair (scm_car (s)) + && unsmob_grob (scm_cdar (s)) == next_col + && unsmob_spring (scm_caar (s))) + spring = unsmob_spring (scm_caar (s)); } if (!spring) @@ -89,8 +89,7 @@ Spaceable_grob::get_spring (Grob *this_col, Grob *next_col) ADD_INTERFACE (Spaceable_grob, - "A layout object that takes part in the spacing problem. ", - + "A layout object that takes part in the spacing problem.", /* properties */ "allow-loose-spacing " @@ -101,6 +100,5 @@ ADD_INTERFACE (Spaceable_grob, "minimum-distances " "right-neighbors " "spacing-wishes " - );