]> git.donarmstrong.com Git - lilypond.git/commitdiff
ly:grob-set-property!: Don't crash if set to a simple closure.
authorNeil Puttock <n.puttock@gmail.com>
Wed, 20 Jul 2011 16:56:59 +0000 (17:56 +0100)
committerNeil Puttock <n.puttock@gmail.com>
Wed, 20 Jul 2011 16:56:59 +0000 (17:56 +0100)
* lily/grob-scheme.cc (ly_grob_set_property_x):

  filter out simple closures when doing type-checking

lily/grob-scheme.cc

index 9554883464f4d5c5d74d47cac737a286e42e41c4..f10ee2106fe762f73569e03794d1ba26358b8d8d 100644 (file)
   along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "warn.hh"             // error ()
+#include "font-interface.hh"
+#include "grob-array.hh"
 #include "item.hh"
 #include "output-def.hh"
-#include "system.hh"
-#include "font-interface.hh"
 #include "paper-score.hh"
-#include "grob-array.hh"
+#include "simple-closure.hh"
+#include "system.hh"
+#include "warn.hh"             // error ()
 
 LY_DEFINE (ly_grob_property_data, "ly:grob-property-data",
           2, 0, 0, (SCM grob, SCM sym),
@@ -49,6 +50,7 @@ LY_DEFINE (ly_grob_set_property_x, "ly:grob-set-property!",
   LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
 
   if (!ly_is_procedure (val)
+      && !is_simple_closure (val)
       && !type_check_assignment (sym, val, ly_symbol2scm ("backend-type?")))
     error ("typecheck failed");