From 3312ca325600af8adf1fbad1a9546aa1566fab66 Mon Sep 17 00:00:00 2001 From: Keith OHara Date: Wed, 21 Aug 2013 13:51:49 -0700 Subject: [PATCH] side-position-interface: do not recursively add support Also remove the call to remove_duplicates() on every addition to a support list. Reversing unwanted changes from commit 7d3d28d --- lily/pointer-group-interface.cc | 9 --------- lily/script-column.cc | 2 +- lily/side-position-interface.cc | 9 --------- 3 files changed, 1 insertion(+), 19 deletions(-) diff --git a/lily/pointer-group-interface.cc b/lily/pointer-group-interface.cc index 79888348f9..045563d457 100644 --- a/lily/pointer-group-interface.cc +++ b/lily/pointer-group-interface.cc @@ -68,19 +68,11 @@ Pointer_group_interface::find_grob (Grob *me, SCM sym, bool (*pred) (Grob *)) return 0; } -// If the grob array is unordered, we assume that duplicates should -// be removed. This makes sense for things like side-position-elements, -// which may be added recursively numerous times and thus will eat up -// computation time when skylines are calculated. -// If the array is ordered, then we don't remove duplicates. - void Pointer_group_interface::add_grob (Grob *me, SCM sym, Grob *p) { Grob_array *arr = get_grob_array (me, sym); arr->add (p); - if (!arr->ordered ()) - arr->remove_duplicates (); } void @@ -89,7 +81,6 @@ Pointer_group_interface::add_unordered_grob (Grob *me, SCM sym, Grob *p) Grob_array *arr = get_grob_array (me, sym); arr->add (p); arr->set_ordered (false); - arr->remove_duplicates (); } static vector empty_array; diff --git a/lily/script-column.cc b/lily/script-column.cc index d0486ea4aa..0a014a3800 100644 --- a/lily/script-column.cc +++ b/lily/script-column.cc @@ -156,7 +156,7 @@ Script_column::order_grobs (vector grobs) use it as a support for the current grob */ if (!scm_is_number (last_outside_staff)) - Side_position_interface::recursive_add_support (g, last); + Side_position_interface::add_support (g, last); /* if outside_staff_priority is missing or is equal to original outside_staff_priority of previous grob, set new diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index 07076d32c3..998813a0ec 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -54,15 +54,6 @@ Side_position_interface::add_support (Grob *me, Grob *e) Pointer_group_interface::add_unordered_grob (me, ly_symbol2scm ("side-support-elements"), e); } -void -Side_position_interface::recursive_add_support (Grob *me, Grob *e) -{ - Pointer_group_interface::add_unordered_grob (me, ly_symbol2scm ("side-support-elements"), e); - extract_grob_set (e, "side-support-elements", sse); - for (vsize i = 0; i < sse.size (); i++) - recursive_add_support (me, sse[i]); -} - set get_support_set (Grob *me) { -- 2.39.2