[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Failing !is_empty assertion and tremolos
From: |
David Kastrup |
Subject: |
Re: Failing !is_empty assertion and tremolos |
Date: |
Tue, 26 Mar 2019 00:14:30 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
Aaron Hill <address@hidden> writes:
> I think I have narrowed down the source of the problem.
>
> From stem-tremolo.cc:175-177:
>
>> Interval ph = stem->pure_y_extent (stem, 0, INT_MAX);
>> Stem_info si = Stem::get_stem_info (stem);
>> ph[-dir] = si.shortest_y_;
>
> There is an implicit assumption that si.shortest_y_ will always be
> within the interval ph. Otherwise, the final line will produce an
> inverted interval. And later on in the function, the !is_empty
> assertion will fail when ph.center() is called.
Good analysis.
Tracker issue: 5501 (https://sourceforge.net/p/testlilyissues/issues/5501/)
Rietveld issue: 572550043 (https://codereview.appspot.com/572550043)
Issue description:
Avoid failed assertion in stem tremolo code Example code triggering
the problem: \relative { a32 8..:32 }
> Of course, this is not to say that Stem::calc_stem_info is definitely
> in the wrong, but its output is not always what
> Stem_tremolo::pure_height would seem to expect.
This avoids the interval shrinking to void empty by not shrinking the
interval, ever. I am not sure this is the right fix. Is the interval
intended to shrink?
--
David Kastrup