extern void check_interfaces_for_property (Grob const *me, SCM sym);
-#ifndef NDEBUG
+#if 0
+
+/*
+ We can't change signatures depending on NDEBUG, since NDEBUG comes
+ over the command line and may be different per .cc file. This
+ should be done through the macro expansion of get_property().
+ */
void
Grob::internal_set_property (SCM sym, SCM v, char const *file, int line, char const *fun)
{
sym, v, SCM_UNDEFINED));
}
#else
+
+
void
Grob::internal_set_property (SCM sym, SCM v)
{
{
if (!ly_is_procedure (v)
&& !is_simple_closure (v)
- && v != ly_symbol2scm ("calculation-in-progress")
- && !type_check_assignment (sym, v, ly_symbol2scm ("backend-type?")))
- abort ();
+ && v != ly_symbol2scm ("calculation-in-progress"))
+ type_check_assignment (sym, v, ly_symbol2scm ("backend-type?"));
+
check_interfaces_for_property (this, sym);
}
if (do_internal_type_checking_global && scm_is_pair (handle))
{
SCM val = scm_cdr (handle);
- if (!ly_is_procedure (val)
- && !is_simple_closure (val)
- && !type_check_assignment (sym, val,
- ly_symbol2scm ("backend-type?")))
- abort ();
+ if (!ly_is_procedure (val) && !is_simple_closure (val))
+ type_check_assignment (sym, val, ly_symbol2scm ("backend-type?"));
check_interfaces_for_property (this, sym);
}