From 76d60ecc1f921719d48a9b1b5c65f00cfa9d3930 Mon Sep 17 00:00:00 2001 From: Neil Puttock Date: Wed, 20 Jul 2011 17:56:59 +0100 Subject: [PATCH] ly:grob-set-property!: Don't crash if set to a simple closure. * lily/grob-scheme.cc (ly_grob_set_property_x): filter out simple closures when doing type-checking --- lily/grob-scheme.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lily/grob-scheme.cc b/lily/grob-scheme.cc index 9554883464..f10ee2106f 100644 --- a/lily/grob-scheme.cc +++ b/lily/grob-scheme.cc @@ -18,13 +18,14 @@ along with LilyPond. If not, see . */ -#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"); -- 2.39.2