-/*
- Perform substitution on GROB_LIST using a constant amount of stack.
-*/
-void
-substitute_grob_array (Grob_array *grob_arr, Grob_array * new_arr)
-{
- Link_array<Grob> &old_grobs (grob_arr->array_reference ());
- Link_array<Grob> *new_grobs (new_arr == grob_arr
- ? new Link_array<Grob>
- : &new_arr->array_reference ());
-
- for (int i = 0; i < old_grobs.size (); i++)
- {
- Grob * orig = old_grobs[i];
- SCM new_grob = substitute_grob (orig);
- if (new_grob != SCM_UNDEFINED)
- {
- new_grobs->push (unsmob_grob (new_grob));
- }
- }
-
- if (new_arr == grob_arr)
- {
- new_arr->set_array (*new_grobs);
- }
-}
-