[Top][All Lists]
[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
- Issue 2233 in lilypond: Patch: Make inherited stream event properties immutable.,
lilypond <=