X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fobject-key-dumper.cc;h=c1ba935b44db9eb145687ceb5afe0e3e0b169dfd;hb=9806dbae3ff6491b74fce957d0574935360ea121;hp=547707bab4fe58f2283c120ea63a5568872dad86;hpb=e10ac37baf76ef07809e851f70870d1e5b8f3bb1;p=lilypond.git diff --git a/lily/object-key-dumper.cc b/lily/object-key-dumper.cc index 547707bab4..c1ba935b44 100644 --- a/lily/object-key-dumper.cc +++ b/lily/object-key-dumper.cc @@ -1,33 +1,26 @@ /* - object-key-dumper.cc -- implement Object_key_dumper + object-key-dumper.cc -- implement Object_key_dumper source file of the GNU LilyPond music typesetter - (c) 2004 Han-Wen Nienhuys - + (c) 2004--2005 Han-Wen Nienhuys */ - -#include - -#include "ly-smobs.icc" +#include "object-key-dumper.hh" #include "moment.hh" -#include "object-key-dumper.hh" -#include "object-key.hh" +#include "ly-smobs.icc" SCM -Object_key_dumper::mark_smob (SCM smob ) +Object_key_dumper::mark_smob (SCM smob) { - Object_key_dumper * dumper = (Object_key_dumper*) SCM_CELL_WORD_1 (smob); - + Object_key_dumper *dumper = (Object_key_dumper *) SCM_CELL_WORD_1 (smob); + for (Key_to_key_map::const_iterator i (dumper->serialized_keys_.begin ()); - i != dumper->serialized_keys_.end(); + i != dumper->serialized_keys_.end (); i++) - { - scm_gc_mark ((*i).first->self_scm()); - } + scm_gc_mark ((*i).first->self_scm ()); return SCM_EOL; } @@ -38,8 +31,8 @@ Object_key_dumper::print_smob (SCM, SCM port, scm_print_state*) return 1; } -IMPLEMENT_DEFAULT_EQUAL_P(Object_key_dumper); -IMPLEMENT_SMOBS(Object_key_dumper); +IMPLEMENT_DEFAULT_EQUAL_P (Object_key_dumper); +IMPLEMENT_SMOBS (Object_key_dumper); Object_key_dumper::Object_key_dumper () { @@ -58,22 +51,20 @@ Object_key_dumper::key_serial (int k) SCM Object_key_dumper::serialize_key (Object_key const *key) { - SCM skey = key->dump(); - for (SCM s = skey ; scm_is_pair (s) ; s = scm_cdr (s)) + SCM skey = key->dump (); + for (SCM s = skey; scm_is_pair (s); s = scm_cdr (s)) { - if (Object_key const * sub_key = unsmob_key (scm_car (s))) - { - scm_set_car_x (s, dump_key (sub_key)); - } + if (Object_key const *sub_key = unsmob_key (scm_car (s))) + scm_set_car_x (s, dump_key (sub_key)); else if (Moment *mom = unsmob_moment (scm_car (s))) { scm_set_car_x (s, scm_list_2 (ly_symbol2scm ("unquote"), - mom->as_scheme())); + mom->as_scheme ())); } } - file_contents_ = scm_cons (scm_list_3 (ly_symbol2scm("define-key"), + file_contents_ = scm_cons (scm_list_3 (ly_symbol2scm ("define-key"), scm_from_int (next_available_), skey), file_contents_); @@ -81,7 +72,7 @@ Object_key_dumper::serialize_key (Object_key const *key) serialized_keys_[key] = key; key_serial_numbers_[key] = next_available_; SCM retval = key_serial (next_available_); - next_available_ ++; + next_available_++; return retval; } @@ -90,14 +81,10 @@ SCM Object_key_dumper::dump_key (Object_key const *key) { if (key_serial_numbers_.find (key) != key_serial_numbers_.end ()) - { - return key_serial (key_serial_numbers_[key]); - } + return key_serial (key_serial_numbers_[key]); else if (Object_key const *serialized = serialized_keys_[key]) - { - return key_serial (key_serial_numbers_[ serialized_keys_ [serialized] ]); - } - + return key_serial (key_serial_numbers_[ serialized_keys_ [serialized] ]); + return serialize_key (key); } @@ -107,42 +94,6 @@ Object_key_dumper::get_file_contents () const return scm_reverse (file_contents_); } -LY_DEFINE(ly_make_dumper, "ly:make-dumper", - 0,0,0, - (), - "Create a key dumper. " - ) -{ - Object_key_dumper *u = new Object_key_dumper (); - SCM x = u->self_scm(); - scm_gc_unprotect_object (x); - return x; -} - -LY_DEFINE(ly_dumper_definitions, "ly:dumper-definitions", - 1,0,0, - (SCM dumper), - "Return list of key definitions. " - ) -{ - Object_key_dumper *u = unsmob_key_dumper (dumper); - SCM_ASSERT_TYPE(u, dumper, SCM_ARG1, __FUNCTION__, "dumper"); - return u->get_file_contents(); -} - -LY_DEFINE(ly_dumper_key_serial, "ly:dumper-key-serial", - 2,0,0, - (SCM dumper, SCM key), - "Return the key serial number @var{key}. " - ) -{ - Object_key_dumper* u = unsmob_key_dumper (dumper); - Object_key *k = unsmob_key (key); - SCM_ASSERT_TYPE(u, dumper, SCM_ARG1, __FUNCTION__, "dumper"); - SCM_ASSERT_TYPE(k, key, SCM_ARG2, __FUNCTION__, "key"); - return u->dump_key (k); -} - -Object_key_dumper::~Object_key_dumper() +Object_key_dumper::~Object_key_dumper () { }