X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgrob-property.cc;h=c4dce927b43f86f3265348779ede3ef846f6b1b9;hb=ab685a4504e0aef61caf91085e900e05b6aa0194;hp=59a3cd68f2a2e79cf6ad3701a84320646c1812e7;hpb=8f8b3fb62d5d0776335de899b32aada69457810a;p=lilypond.git diff --git a/lily/grob-property.cc b/lily/grob-property.cc index 59a3cd68f2..c4dce927b4 100644 --- a/lily/grob-property.cc +++ b/lily/grob-property.cc @@ -55,6 +55,7 @@ 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 (); check_interfaces_for_property (this, sym); @@ -108,6 +109,7 @@ Grob::internal_get_property (SCM sym) const #ifndef NDEBUG #include "protected-scm.hh" + Protected_scm grob_property_callback_stack = SCM_EOL; bool debug_property_callbacks = 0; #endif @@ -191,3 +193,10 @@ Grob::is_live () const { return immutable_property_alist_ != SCM_EOL; } + + +bool +Grob::internal_has_interface (SCM k) +{ + return scm_c_memq (k, interfaces_) != SCM_BOOL_F; +}