Status: New Owner: ---- Labels: Type-Enhancement Patch-new
New issue 2233 by d...@gnu.org: 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 _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond