lilypond-devel
[Top][All Lists]
Advanced

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

Re: Fix #5964: MM Rests shouldn’t segfault when there’s no StaffSymbol.


From: v . villenave
Subject: Re: Fix #5964: MM Rests shouldn’t segfault when there’s no StaffSymbol. (issue 576090043 by address@hidden)
Date: Thu, 07 May 2020 08:12:03 -0700

https://codereview.appspot.com/576090043/diff/557790043/lily/multi-measure-rest.cc
File lily/multi-measure-rest.cc (right):

https://codereview.appspot.com/576090043/diff/557790043/lily/multi-measure-rest.cc#newcode268
lily/multi-measure-rest.cc:268: bool oneline = (!staff) ||
Staff_symbol::line_positions (staff).size() == 1;
On 2020/05/07 12:18:48, Dan Eble wrote:
> If there is no staff symbol, then there isn't even one line. Are you
sure you
> don't want this?
>     bool oneline = staff ? /*etc.*/ : false;

No, I actually want oneline to be true . I did consider changing the
variable name to no_multiple_lines, because that’s what it’s really
about. I also considered adding a comment such as:
// If there is no StaffSymbol, print MMrests on one (invisible) line.

> Incidentally, I am surprised to see the amount of work involved in
determining
> whether the staff has one line.  It's not the kind of thing one
expects to
> involve heap allocation.

I suspect this sort-of mirrors the way you’d do it in Scheme:
(if (> (length
        (ly:grob-property
         (ly:grob-object grob 'staff-symbol)
        'line-positions))
      0)
 etc.

If you have a simpler syntax in mind, please share :-)

Cheers,
-- V.

https://codereview.appspot.com/576090043/



reply via email to

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