From 358e138539debdc5d5c5ab2c2cf4ad0dc78c485a Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 22:23:56 +0000 Subject: [PATCH] lilypond-1.1.61 --- lily/axis-group-element.cc | 23 ++++++++++++++++++++++- lily/include/axis-group-element.hh | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lily/axis-group-element.cc b/lily/axis-group-element.cc index 0c5322bec7..a562b52d88 100644 --- a/lily/axis-group-element.cc +++ b/lily/axis-group-element.cc @@ -90,6 +90,7 @@ Interval Axis_group_element::extra_extent (Axis a )const { Interval g; + purge_extra (); for (int i=0; i < extra_elems_.size (); i++) { Interval ge = extra_elems_[i]->extent (a); @@ -126,7 +127,7 @@ Axis_group_element::add_extra_element (Score_element *e) while (e && e != this) { se.push (e); - e = dynamic_cast (e->dim_cache_[Y_AXIS]->parent_l_ ? e->dim_cache_[Y_AXIS]->parent_l_->element_l() : 0); + e = dynamic_cast (e->parent_l (Y_AXIS)); } if (1) // e == this) @@ -140,3 +141,23 @@ Axis_group_element::add_extra_element (Score_element *e) } } + +/* + UGH GUH + */ +void +Axis_group_element::purge_extra () +{ + for (int i=0; i < extra_elems_.size ();) + { + Score_element *e = extra_elems_[i]; + while (e && e != this) + { + e = dynamic_cast (e->parent_l (Y_AXIS)); + } + if (e != this) + extra_elems_.del (i); + else + i++; + } +} diff --git a/lily/include/axis-group-element.hh b/lily/include/axis-group-element.hh index c3221a0ec2..c77b0058c2 100644 --- a/lily/include/axis-group-element.hh +++ b/lily/include/axis-group-element.hh @@ -25,6 +25,7 @@ class Axis_group_element : public virtual Score_element, protected: virtual void do_print() const; virtual Link_array get_extra_dependencies() const; + void purge_extra (); virtual void do_substitute_element_pointer (Score_element*,Score_element*); virtual Link_array elem_l_arr() const; -- 2.39.5