X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcontext-def.cc;h=ec80878b2d9ae1e07a0c86d36192e8c9e1721d0e;hb=a190ba1c3dd5a4cfb9dd568a49eadfa6a86f8444;hp=56da817e105cb322f9b4a6ed70e0dfab9ea498d0;hpb=99b6f3aa3558b01c9d4158b19a1f1794c534f89c;p=lilypond.git diff --git a/lily/context-def.cc b/lily/context-def.cc index 56da817e10..ec80878b2d 100644 --- a/lily/context-def.cc +++ b/lily/context-def.cc @@ -43,14 +43,14 @@ Context_def::Context_def () smobify_self (); - input_location_ = make_input (Input ()); + input_location_ = Input ().smobbed_copy (); context_name_ = ly_symbol2scm (""); } Input * Context_def::origin () const { - return unsmob_input (input_location_); + return Input::unsmob (input_location_); } Context_def::Context_def (Context_def const &s) @@ -67,7 +67,7 @@ Context_def::Context_def (Context_def const &s) smobify_self (); description_ = s.description_; - input_location_ = make_input (*s.origin ()); + input_location_ = s.origin ()->smobbed_copy (); default_child_ = s.default_child_; accept_mods_ = s.accept_mods_; property_ops_ = s.property_ops_; @@ -81,42 +81,35 @@ Context_def::~Context_def () { } -#include "ly-smobs.icc" -IMPLEMENT_SMOBS (Context_def); -IMPLEMENT_DEFAULT_EQUAL_P (Context_def); -IMPLEMENT_TYPE_P (Context_def, "ly:context-def?"); +const char Context_def::type_p_name_[] = "ly:context-def?"; int -Context_def::print_smob (SCM smob, SCM port, scm_print_state *) +Context_def::print_smob (SCM port, scm_print_state *) { - Context_def *me = (Context_def *) SCM_CELL_WORD_1 (smob); - scm_puts ("#context_name_, port); + scm_display (context_name_, port); scm_puts (" ", port); - string loc = me->origin ()->location_string (); + string loc = origin ()->location_string (); scm_puts (loc.c_str (), port); scm_puts (">", port); return 1; } SCM -Context_def::mark_smob (SCM smob) +Context_def::mark_smob () { - ASSERT_LIVE_IS_ALLOWED (smob); - - Context_def *me = (Context_def *) SCM_CELL_WORD_1 (smob); - - scm_gc_mark (me->description_); - scm_gc_mark (me->context_aliases_); - scm_gc_mark (me->accept_mods_); - scm_gc_mark (me->translator_mods_); - scm_gc_mark (me->property_ops_); - scm_gc_mark (me->translator_group_type_); - scm_gc_mark (me->default_child_); - scm_gc_mark (me->input_location_); - - return me->context_name_; + ASSERT_LIVE_IS_ALLOWED (self_scm ()); + + scm_gc_mark (description_); + scm_gc_mark (context_aliases_); + scm_gc_mark (accept_mods_); + scm_gc_mark (translator_mods_); + scm_gc_mark (property_ops_); + scm_gc_mark (translator_group_type_); + scm_gc_mark (default_child_); + scm_gc_mark (input_location_); + + return context_name_; } void @@ -241,7 +234,7 @@ Context_def::internal_path_to_acceptable_context (SCM type_sym, vector accepteds; for (SCM s = accepted; scm_is_pair (s); s = scm_cdr (s)) - if (Context_def *t = unsmob_context_def (find_context_def (odef, + if (Context_def *t = Context_def::unsmob (find_context_def (odef, scm_car (s)))) accepteds.push_back (t); @@ -404,7 +397,7 @@ LY_DEFINE (ly_context_def_lookup, "ly:context-def-lookup", " @samp{property-ops}, @samp{context-name}, @samp{group-type}.") { LY_ASSERT_SMOB (Context_def, def, 1); - Context_def *cd = unsmob_context_def (def); + Context_def *cd = Context_def::unsmob (def); LY_ASSERT_TYPE (ly_is_symbol, sym, 2); SCM res = cd->lookup (sym); @@ -428,9 +421,9 @@ LY_DEFINE (ly_context_def_modify, "ly:context-def-modify", LY_ASSERT_SMOB (Context_def, def, 1); LY_ASSERT_SMOB (Context_mod, mod, 2); - Context_def *cd = unsmob_context_def (def)->clone (); + Context_def *cd = Context_def::unsmob (def)->clone (); - for (SCM s = unsmob_context_mod (mod)->get_mods (); + for (SCM s = Context_mod::unsmob (mod)->get_mods (); scm_is_pair (s); s = scm_cdr (s)) cd->add_context_mod (scm_car (s));