[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: segfault in grob.cc
From: |
Han-Wen Nienhuys |
Subject: |
Re: segfault in grob.cc |
Date: |
Tue, 5 Jun 2001 09:15:28 +0200 |
address@hidden writes:
>
> > What is a broken smob, anyway? Is it possible that my score has some
> > diabolical feature that makes a bunch of those?
>
> Lily constructs the score as one very long line (or system). After
> line breaking, this long line is broken into the lines which are
> printed, and spanners (slurs, ties, etc.) are broken along. This
> linebreaking requires that lots of pointers have to be remapped, which
> is what handle_broken_smobs () does.
>
> A really high estimate for me would be 800 measures with a linebreak
> every five, and 12 staves. If I had a meter change at every
> linebreak, that would still only be 1920 (x2 for each part?) broken "smobs".
Actually, no: at every feasible line break, bar lines and clefs are doubly
duplicated to deal with linebreaks, so a better estimate would be
800 measures * 3 items / linebreak (clef, left edge, barline,
various grouping items) * 2 * 12 staves = 57600
but, to do the substitution, you have to examine *all* pointers (which
means that you have to recurse on lists that are a lot longer than
10000). Only after this substitution thing, hara kiri removes unused
staves.
> In reality, a lot of those staves are blown away by the HaraKiri mechanism.
> Would it help you guys if I hacked in some kind of counter?
lilypond -V gives element counts
> John
--
Han-Wen Nienhuys | address@hidden | http://www.cs.uu.nl/~hanwen/
Re: segfault in grob.cc, Han-Wen Nienhuys, 2001/06/03