X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpointer-group-interface.cc;h=73cf9fd6a91af44430c47b279bff46fbf9e9d39c;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=79888348f9ce48a7fe7e69445924434941f8a2e8;hpb=2f7fe0c6bc80ad57ae73e213f9b20bc9719ba2ce;p=lilypond.git diff --git a/lily/pointer-group-interface.cc b/lily/pointer-group-interface.cc index 79888348f9..73cf9fd6a9 100644 --- a/lily/pointer-group-interface.cc +++ b/lily/pointer-group-interface.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2005--2012 Han-Wen Nienhuys + Copyright (C) 2005--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,14 +25,14 @@ int Pointer_group_interface::count (Grob *me, SCM sym) { - Grob_array *arr = unsmob_grob_array (me->internal_get_object (sym)); + Grob_array *arr = Grob_array::unsmob (me->internal_get_object (sym)); return arr ? arr->size () : 0; } void Pointer_group_interface::add_grob (Grob *me, SCM sym, SCM p) { - add_grob (me, sym, unsmob_grob (p)); + add_grob (me, sym, Grob::unsmob (p)); } void @@ -46,11 +46,11 @@ Grob_array * Pointer_group_interface::get_grob_array (Grob *me, SCM sym) { SCM scm_arr = me->internal_get_object (sym); - Grob_array *arr = unsmob_grob_array (scm_arr); + Grob_array *arr = Grob_array::unsmob (scm_arr); if (!arr) { scm_arr = Grob_array::make_array (); - arr = unsmob_grob_array (scm_arr); + arr = Grob_array::unsmob (scm_arr); me->set_object (sym, scm_arr); } return arr; @@ -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; @@ -97,7 +88,7 @@ static vector empty_array; vector const & ly_scm2link_array (SCM x) { - Grob_array *arr = unsmob_grob_array (x); + Grob_array *arr = Grob_array::unsmob (x); return arr ? arr->array () : empty_array; } @@ -112,7 +103,7 @@ internal_extract_grob_array (Grob const *elt, SCM symbol) vector internal_extract_item_array (Grob const *elt, SCM symbol) { - Grob_array *arr = unsmob_grob_array (elt->internal_get_object (symbol)); + Grob_array *arr = Grob_array::unsmob (elt->internal_get_object (symbol)); vector items; for (vsize i = 0; arr && i < arr->size (); i++) items.push_back (arr->item (i));