[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Reduces algorithm time by prefinding footnoted grobs (issue4213042)

From: n . puttock
Subject: Re: Reduces algorithm time by prefinding footnoted grobs (issue4213042)
Date: Tue, 01 Mar 2011 22:15:37 +0000
File lily/ (right):
lily/ Pointer_group_interface::add_grob (g,
ly_symbol2scm ("annotations"), b);
remove (and all related code)
File lily/ (right):
lily/ extract_grob_set (this, "annotations", annotations);
I'm not sure what you were thinking here, but this would never get
called anyway since object_alist_ is empty :)
File lily/ (right):
lily/ return footnote_height;
This produces incorrect results in some cases, since footnotes_ is
initialized before line breaking has taken place.  For example, compare
the return values for the following snippets:

\relative c' {
  \repeat unfold 3 \footnoteGrob #'NoteHead #'(0 . 2) "foo" "bar"

\new Staff \with { \consists "Footnote_engraver" }
\relative c' {
  \footnoteGrob #'TimeSignature #'(0 . 2) "foo" "bar"
File lily/ (right):
lily/ && all_elts[i]->is_live ())
This doesn't do anything: it's the parent which is suicided in
Item::break_visible (), but that happens later than this.
lily/ if (!footnote_grobs_[j]->is_live ())
See comment above.
lily/ if (!Text_interface::is_markup (footnote_markup))
This is where the defunct footnotes are removed: since you're using the
footnote_grobs_ cache instead of storing the stencils, any FootnoteItem
whose parent has been suicided due to break-visibility settings will
also be suicided in Grob::handle_broken_dependencies (): thus
footnote-text returns '().

reply via email to

[Prev in Thread] Current Thread [Next in Thread]