X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcontext-mod.cc;h=cb6cf83562fcd64fe5d8303f3ab4ceb2cd56627b;hb=f5419ce02a5ef4230b4ae5bc843d86ba7dcc3853;hp=a028930c2ba79d23381992a985f9a421ff39b4b7;hpb=1c846b2c2348b4e0ca4a3c2e8fb267047ba2d203;p=lilypond.git diff --git a/lily/context-mod.cc b/lily/context-mod.cc index a028930c2b..cb6cf83562 100644 --- a/lily/context-mod.cc +++ b/lily/context-mod.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2010--2011 Reinhold Kainhofer + Copyright (C) 2010--2012 Reinhold Kainhofer LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,17 +29,23 @@ Context_mod::Context_mod (Context_mod const &s) mods_ = s.mods_; } +Context_mod::Context_mod (SCM mod_list) +{ + mods_ = scm_reverse (mod_list); +} + #include "ly-smobs.icc" IMPLEMENT_SIMPLE_SMOBS (Context_mod); IMPLEMENT_DEFAULT_EQUAL_P (Context_mod); +IMPLEMENT_TYPE_P (Context_mod, "ly:context-mod?"); int -Context_mod::print_smob (SCM smob, SCM port, scm_print_state*) +Context_mod::print_smob (SCM smob, SCM port, scm_print_state *) { Context_mod *me = (Context_mod *) SCM_CELL_WORD_1 (smob); scm_puts ("#mods_, port); + scm_display (me->get_mods (), port); scm_puts (">", port); return 1; } @@ -47,11 +53,10 @@ Context_mod::print_smob (SCM smob, SCM port, scm_print_state*) SCM Context_mod::mark_smob (SCM smob) { - ASSERT_LIVE_IS_ALLOWED (); + ASSERT_LIVE_IS_ALLOWED (smob); Context_mod *me = (Context_mod *) SCM_CELL_WORD_1 (smob); - scm_gc_mark (me->mods_); return me->mods_; }