In scm/output-lib.scm, the (internally used) function live-elements-list is defined like this:

  (define (live-elements-list me)
    (let* ((elements (ly:grob-object me 'elements))
       (elts-length (ly:grob-array-length elements))
       (live-elements '()))

      (let get-live ((len elts-length))
    (if (> len 0)
        (let ((elt (ly:grob-array-ref elements (1- len))))

          (if (grob::is-live? elt)
          (set! live-elements (cons elt live-elements)))
          (get-live (1- len)))))
      live-elements))

Any specific reason why not just filter on the is-live? predicate?

Also, is there a real difference between grob::is-live? and ly:is-live? predicates? (I would be inclined to get rid of grob::is-live? version...)

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to