bug-lilypond
[Top][All Lists]
Advanced

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

Issue 2233 in lilypond: Patch: Make inherited stream event properties im


From: lilypond
Subject: Issue 2233 in lilypond: Patch: Make inherited stream event properties immutable.
Date: Fri, 20 Jan 2012 11:22:57 +0000

Status: New
Owner: ----
Labels: Type-Enhancement Patch-new

New issue 2233 by address@hidden: Patch: Make inherited stream event properties immutable.
http://code.google.com/p/lilypond/issues/detail?id=2233

Make inherited stream event properties immutable.

Previously, the initialization of stream events from the (mutable)
part of music event properties was done by just taking the mutable
property list. That had the effect that any changes to the inherited
properties were reflected in the originating music event, making a
mockery of the mutable/immutable distinction intended to provide
copy-on-write semantics.  As an example, the conversion of the
articulations property to events might or might not already have
happened if the music event got reported more than once, like it is
done in \repeat unfold.

The change had the unexpected side effect of making quoted transposed
music fail since the transposition worked exclusively on the mutable
property list part.  This has been fixed by adding a make_transposable
member function to Stream_event that copies affected properties from
the immutable to the mutable part before one attempts transposition.

The source code has not yet been combed through for instances where
stream events have been manually cloned to avoid the bad side effects
of the original code.

Since I need this in other work, I'll likely push to staging somewhat
expeditedly once Patchy has not seen anything wrong with it.

http://codereview.appspot.com/5561046




reply via email to

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