X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstencil-expression.cc;h=8d804196202368c1eaf1043cac78de4e91253fb2;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=c156d0aa9f2d31d0191e33c6105ba93455c45b0d;hpb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;p=lilypond.git diff --git a/lily/stencil-expression.cc b/lily/stencil-expression.cc index c156d0aa9f..8d80419620 100644 --- a/lily/stencil-expression.cc +++ b/lily/stencil-expression.cc @@ -18,28 +18,24 @@ */ #include "stencil.hh" +#include "protected-scm.hh" -static SCM heads; +static Protected_scm heads (SCM_EOL); void register_stencil_head (SCM symbol) { - if (!heads) - heads = scm_permanent_object (scm_cons (SCM_EOL, SCM_EOL)); - scm_set_object_property_x (symbol, ly_symbol2scm ("stencil-head?"), SCM_BOOL_T); - scm_set_cdr_x (heads, scm_cons (symbol, scm_cdr (heads))); + heads = scm_cons (symbol, heads); } bool is_stencil_head (SCM symbol) { - return scm_object_property (symbol, ly_symbol2scm ("stencil-head?")) - == SCM_BOOL_T; + return to_boolean (scm_object_property (symbol, ly_symbol2scm ("stencil-head?"))); } SCM all_stencil_heads () { - return scm_cdr (heads); + return heads; } -