X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcontext-def.cc;h=c3a2a6c293b88594989b633393bb7f340103f629;hb=7785ac382ed511ed535adf77adc3c07649fbc9b5;hp=b856486dba4900e3fd7bd158ea4fb32943b233e7;hpb=8d796a54fbfc350c56f04088cb0c009ee0287256;p=lilypond.git diff --git a/lily/context-def.cc b/lily/context-def.cc index b856486dba..c3a2a6c293 100644 --- a/lily/context-def.cc +++ b/lily/context-def.cc @@ -27,14 +27,21 @@ Context_def::Context_def () context_name_ = SCM_EOL; default_child_ = SCM_EOL; description_ = SCM_EOL; + input_location_ = SCM_EOL; smobify_self (); + input_location_ = make_input (Input ()); context_name_ = ly_symbol2scm (""); } +Input * +Context_def::origin () const +{ + return unsmob_input (input_location_); +} + Context_def::Context_def (Context_def const &s) - : Input (s) { context_aliases_ = SCM_EOL; translator_group_type_ = SCM_EOL; @@ -44,10 +51,11 @@ Context_def::Context_def (Context_def const &s) context_name_ = SCM_EOL; description_ = SCM_EOL; default_child_ = SCM_EOL; - + input_location_ = SCM_EOL; smobify_self (); - description_ = s.description_; + description_ = s.description_; + input_location_ = make_input (*s.origin ()); default_child_ = s.default_child_; accept_mods_ = s.accept_mods_; property_ops_ = s.property_ops_; @@ -79,6 +87,8 @@ Context_def::print_smob (SCM smob, SCM port, scm_print_state*) SCM Context_def::mark_smob (SCM smob) { + ASSERT_LIVE_IS_ALLOWED(); + Context_def *me = (Context_def *) SCM_CELL_WORD_1 (smob); scm_gc_mark (me->description_); @@ -88,6 +98,7 @@ Context_def::mark_smob (SCM smob) 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_; }