+ elem->pscore_ = pscore_;
+ Pointer_group_interface::add_grob (this, ly_symbol2scm ("all-elements"), elem);
+ scm_gc_unprotect_object (elem->self_scm ());
+ }
+}
+
+// todo: use map.
+static void
+fixup_refpoints (SCM s)
+{
+ for (; scm_is_pair (s); s = scm_cdr (s))
+ {
+ Grob::fixup_refpoint (scm_car (s));
+ }
+}
+
+SCM
+System::get_lines ()
+{
+ for (SCM s = get_property ("all-elements"); scm_is_pair (s); s = scm_cdr (s))
+ {
+ Grob *g = unsmob_grob (scm_car (s));
+ if (g->internal_has_interface (ly_symbol2scm ("only-prebreak-interface")))
+ {
+ /*
+ Kill no longer needed grobs.
+ */
+ Item * it = dynamic_cast<Item*> (g);
+ if (it && Item::is_breakable (it))
+ {
+ it->find_prebroken_piece (LEFT)->suicide ();
+ it->find_prebroken_piece (RIGHT)->suicide ();
+ }
+ g->suicide ();
+ }
+ else if (g->is_live ())