]> git.donarmstrong.com Git - lilypond.git/commitdiff
Let Stencil::translate optimize the case of a null stencil expression
authorDavid Kastrup <dak@gnu.org>
Wed, 22 May 2013 14:52:44 +0000 (16:52 +0200)
committerDavid Kastrup <dak@gnu.org>
Sun, 26 May 2013 00:33:01 +0000 (02:33 +0200)
lily/stencil.cc

index 0a7f40205d610ef16d331675657132752ecf0403..16574811092a5e02a84d79512beca8d40c49f641 100644 (file)
@@ -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_)