From: hanwen Date: Sat, 30 Apr 2005 22:42:54 +0000 (+0000) Subject: (insert_tweak_from_file): dubious X-Git-Tag: release/2.5.23~49 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=9b07d86ea9f9d4026b8bd29a238ae48adba7a84e;p=lilypond.git (insert_tweak_from_file): dubious bugfix. Make sure that 0x0 isn't passed into scm_cons(). Fixes crash with tweak editor. --- diff --git a/ChangeLog b/ChangeLog index c7b55c0c14..d302f7d9f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-05-01 Han-Wen Nienhuys + + * lily/tweak-registration.cc (insert_tweak_from_file): dubious + bugfix. Make sure that 0x0 isn't passed into scm_cons(). Fixes + crash with tweak editor. + 2005-04-30 Han-Wen Nienhuys * lily/part-combine-engraver.cc: add space to variable list. diff --git a/lily/parser.yy b/lily/parser.yy index 1ff26ea6e5..db3f0ce8f9 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -2573,7 +2573,7 @@ markup_braced_list: ; markup_braced_list_body: - /* empty */ { $$ = scm_list (SCM_EOL); } + /* empty */ { $$ = SCM_EOL; } | markup_braced_list_body markup { $$ = scm_cons ($2, $1); } @@ -2647,7 +2647,8 @@ simple_markup: markup: markup_head_1_list simple_markup { - $$ = scm_car (scm_call_2 (ly_lily_module_constant ("map-markup-command-list"), $1, scm_list_1 ($2))); + SCM mapper = ly_lily_module_constant ("map-markup-command-list"); + $$ = scm_car (scm_call_2 (mapper, $1, scm_list_1 ($2))); } | simple_markup { $$ = $1; diff --git a/lily/tweak-registration.cc b/lily/tweak-registration.cc index fe815e19c8..9604c5f202 100644 --- a/lily/tweak-registration.cc +++ b/lily/tweak-registration.cc @@ -42,10 +42,13 @@ Tweak_registry::insert_tweak_from_file (SCM tweak) && scm_car (skey) == ly_symbol2scm ("key")); Object_key const *key = undumper_->get_key (scm_to_int (scm_cadr (skey))); - if (tweaks_.find (key) == tweaks_.end ()) - tweaks_[key] = SCM_EOL; - tweaks_[key] = scm_cons (scm_cdr (tweak), tweaks_[key]); + SCM existing = SCM_EOL; + Tweak_map::const_iterator prev = tweaks_.find (key); + if (prev != tweaks_.end ()) + existing = (*prev).second; + + tweaks_[key] = scm_cons (scm_cdr (tweak), existing); } void diff --git a/scm/lily.scm b/scm/lily.scm index 02a6671ac9..9a0b1dfb60 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -9,7 +9,7 @@ (if (defined? 'set-debug-cell-accesses!) (set-debug-cell-accesses! #f)) -;;(set-debug-cell-accesses! 5000) +;(set-debug-cell-accesses! 1000) (use-modules (ice-9 regex) (ice-9 safe)