lilypond-devel
[Top][All Lists]
Advanced

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

Re: Sets TabVoice Stem height to ##f (issue 6303065)


From: mtsolo
Subject: Re: Sets TabVoice Stem height to ##f (issue 6303065)
Date: Tue, 12 Jun 2012 13:47:34 +0000

On 2012/06/12 13:43:09, dak wrote:
Here is a code example from beam.cc:

       Interval weights (1 - multiplier, multiplier);

       if (feather_dir != LEFT)
         weights.swap ();

This is _hogwash_.  weights is not an _interval_ here, but a pair of
numbers.
Swapping the bounds of an interval does not even make _sense_.  Where
is the
point in type abstraction if one creates total conceptual chaos
without inherent
relation to the invariants of the mathematical model underlying the
type?

swap never should have been a public member function (it is used
internally when
mirroring intervals).

If a type is named "Interval", it needs to be employed as an Interval,
not as
something totally different that relies on implementation details.

Otherwise type abstraction makes code _less_ maintainable rather than
more,
since you always need to take all side-effects into consideration.

Dunno - it sounds like time for clean up.

Y-position of beams were stored as intervals for years (they may still
be - I forget).

This sounds like a pretty major task, so as always, I'd touch base w/
Han-Wen to see what Intervals were supposed to be at their inception and
then evaluate what they've grown into.

We can then firm up an Interval API and write a strongly-worded comment
in interval.hh and interval.tcc NOT to touch either of these files.

http://codereview.appspot.com/6303065/



reply via email to

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