SCM_UNDEFINED);
}
-SCM
-Grob::get_interfaces () const
-{
- return interfaces_;
-}
-
extern void check_interfaces_for_property (Grob const *me, SCM sym);
{
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 ();
check_interfaces_for_property (this, sym);
#ifndef NDEBUG
#include "protected-scm.hh"
+
Protected_scm grob_property_callback_stack = SCM_EOL;
bool debug_property_callbacks = 0;
#endif
return (s == SCM_BOOL_F) ? SCM_EOL : scm_cdr (s);
}
-void
-Grob::substitute_object_links (SCM crit, SCM orig)
+bool
+Grob::is_live () const
{
- set_break_subsititution (crit);
- object_alist_ = substitute_object_alist (orig, object_alist_);
+ return immutable_property_alist_ != SCM_EOL;
}
+
bool
-Grob::is_live () const
+Grob::internal_has_interface (SCM k)
{
- return immutable_property_alist_ != SCM_EOL;
+ return scm_c_memq (k, interfaces_) != SCM_BOOL_F;
}