From 8c105f9adf1ad4edd867425a34e6eb9b72b1265a Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 23:22:23 +0000 Subject: [PATCH] lilypond-1.3.55 --- CHANGES | 33 ++++++++++++++++++++++++++++----- VERSION | 2 +- lily/bar.cc | 7 ++++--- lily/span-bar.cc | 16 +++++++++------- 4 files changed, 42 insertions(+), 16 deletions(-) diff --git a/CHANGES b/CHANGES index 496aaedfee..6495aaa3aa 100644 --- a/CHANGES +++ b/CHANGES @@ -1,11 +1,34 @@ -1.3.53.uu1 -========== +1.3.54.hwn2 +=========== + +* Experimental property collapse for most score-elements. (notable +exceptions: Scripts, pedals). Change all Score_element constructors to +take a basic-property list. The suffix of a property list may be +shared by several score-elements, for instance all default G-clefs in +a score share the following settings + + (breakable . #t) + (break-align-symbol . Clef_item) + (visibility-lambda . ,begin-of-line-visible) + +This should reduce memory usage further. + +* Magically fixed the disappearing Lyrics problem. + +* Removed used_b_ field from Score_element. + +* Massive search-replace patch: store pointers and properties +separately, in preparation of property collapse. + + +1.3.54 +====== * Bugfix: don't crash on tuplet spanners that don't contain any notes. -* Small cleanup of Dimension_cache: removed a few redundant -fields. Slightly lower memory usage. Dimension_cache is now a `dumb' -struct again. +* Cleanup of Dimension_cache: removed a few redundant +fields. Slightly lower memory usage (32 bytes per +score-element). Dimension_cache is now a `dumb' struct again. * Add array index to priority field of text scripts to ensure that order is unique, and sensible. diff --git a/VERSION b/VERSION index c3ec2ace94..4f9a3e7262 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=54 +PATCH_LEVEL=55 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/lily/bar.cc b/lily/bar.cc index 99f65c026e..ec2b812b3e 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -18,9 +18,9 @@ #include "debug.hh" #include "all-font-metrics.hh" -Bar::Bar () +Bar::Bar (SCM s) + : Item (s) { - set_elt_property ("breakable", SCM_BOOL_T); } @@ -124,6 +124,7 @@ void Bar::before_line_breaking () { SCM g = get_elt_property ("glyph"); + SCM orig = g; Direction bsd = break_status_dir (); if (gh_string_p (g)) { @@ -146,7 +147,7 @@ Bar::before_line_breaking () set_elt_property ("transparent", SCM_BOOL_T); set_extent_callback (0, X_AXIS); } - else + else if (! gh_equal_p (g, orig)) set_elt_property ("glyph", g); } diff --git a/lily/span-bar.cc b/lily/span-bar.cc index c5f29de20f..741d7c00f0 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -18,7 +18,7 @@ void Span_bar::add_bar (Score_element*b) { - Group_interface gi (this); + Pointer_group_interface gi (this); gi.add_element (b); add_dependency (b); @@ -26,7 +26,7 @@ Span_bar::add_bar (Score_element*b) Interval -Span_bar::width_callback (Score_element const *se, Axis a) +Span_bar::width_callback (Score_element const *se, Axis ) { Span_bar* s= dynamic_cast ((Score_element*)se); String gl = ly_scm2string (s->get_elt_property ("glyph")); @@ -58,7 +58,7 @@ Span_bar::after_line_breaking () void Span_bar::evaluate_empty () { - if (!gh_pair_p (get_elt_property ("elements"))) + if (!gh_pair_p (get_elt_pointer ("elements"))) { set_elt_property ("transparent", SCM_BOOL_T); set_extent_callback (0, X_AXIS); @@ -74,6 +74,7 @@ Span_bar::evaluate_empty () } else { String type_str = ly_scm2string (gl); + String orig = type_str; if (type_str == "|:") { type_str= ".|"; @@ -86,8 +87,8 @@ Span_bar::evaluate_empty () { type_str= ".|."; } - - set_elt_property ("glyph", ly_str02scm (type_str.ch_C())); + if (orig != type_str) + set_elt_property ("glyph", ly_str02scm (type_str.ch_C())); } } @@ -110,9 +111,10 @@ Span_bar::get_bar_size () const return iv.length (); } -Span_bar::Span_bar () +Span_bar::Span_bar (SCM s) + : Bar (s) { - group (this).set_interface (); + Pointer_group_interface(this).set_interface (); set_extent_callback (width_callback, X_AXIS); // dim_cache_[Y_AXIS]->set_extent_callback (Axis_group_interface::group_extent_callback); -- 2.39.5