From: David Kastrup Date: Wed, 22 May 2013 14:52:44 +0000 (+0200) Subject: Let Stencil::translate optimize the case of a null stencil expression X-Git-Tag: release/2.17.19-1~5^2~25 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=6a76e0d8b213b7174abe45a25eda1105bb2ee02e;p=lilypond.git Let Stencil::translate optimize the case of a null stencil expression --- diff --git a/lily/stencil.cc b/lily/stencil.cc index 0a7f40205d..1657481109 100644 --- a/lily/stencil.cc +++ b/lily/stencil.cc @@ -176,9 +176,10 @@ Stencil::translate (Offset o) incr (a); } - expr_ = scm_list_n (ly_symbol2scm ("translate-stencil"), - ly_offset2scm (o), - expr_, SCM_UNDEFINED); + if (!scm_is_null (expr_)) + expr_ = scm_list_n (ly_symbol2scm ("translate-stencil"), + ly_offset2scm (o), + expr_, SCM_UNDEFINED); if (!is_empty ()) dim_.translate (o); } @@ -206,7 +207,11 @@ void Stencil::add_stencil (Stencil const &s) { SCM cs = ly_symbol2scm ("combine-stencil"); - if (scm_is_pair (expr_) + if (scm_is_null (expr_)) + expr_ = s.expr_; + else if (scm_is_null (s.expr_)) + ; + else if (scm_is_pair (expr_) && scm_is_eq (cs, scm_car (expr_))) { if (scm_is_pair (s.expr_)