X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fobject-key.cc;h=1a350268f517129594cf0d2208513886945678db;hb=1e631c87d1f5c1e5c448c8604e1d2f7b2ff9b5be;hp=ae38bfb54cafdf87da971178711497a9f6c523f7;hpb=e10ac37baf76ef07809e851f70870d1e5b8f3bb1;p=lilypond.git diff --git a/lily/object-key.cc b/lily/object-key.cc index ae38bfb54c..1a350268f5 100644 --- a/lily/object-key.cc +++ b/lily/object-key.cc @@ -1,10 +1,9 @@ /* - object-key.cc -- implement Object_key + object-key.cc -- implement Object_key source file of the GNU LilyPond music typesetter - (c) 2004 Han-Wen Nienhuys - + (c) 2004--2005 Han-Wen Nienhuys */ #include "lilypond-key.hh" @@ -13,18 +12,17 @@ SCM Object_key::mark_smob (SCM key) { - Object_key* k = (Object_key*) SCM_CELL_WORD_1 (key); - k->derived_mark(); + Object_key *k = (Object_key *) SCM_CELL_WORD_1 (key); + k->derived_mark (); return SCM_EOL; } void Object_key::derived_mark () const { - } -Object_key::~Object_key() +Object_key::~Object_key () { } @@ -37,9 +35,9 @@ Object_key::get_type () const int Object_key::print_smob (SCM smob, SCM port, scm_print_state*) { - Object_key* k = (Object_key*) SCM_CELL_WORD_1 (smob); + Object_key *k = (Object_key *) SCM_CELL_WORD_1 (smob); scm_puts ("#get_type()), port); + scm_display (scm_from_int (k->get_type ()), port); scm_puts (">", port); return 1; } @@ -54,8 +52,8 @@ Object_key::compare (Object_key const *other) const { if (this == other) return 0; - - int c = sign (get_type () - other->get_type()); + + int c = sign (get_type () - other->get_type ()); if (c) return c; else @@ -65,11 +63,11 @@ Object_key::compare (Object_key const *other) const IMPLEMENT_SMOBS (Object_key); SCM -Object_key::equal_p (SCM a , SCM b) +Object_key::equal_p (SCM a, SCM b) { Object_key *ka = unsmob_key (a); Object_key *kb = unsmob_key (b); - + return (ka->compare (kb)) ? SCM_BOOL_F : SCM_BOOL_T; } @@ -79,38 +77,39 @@ Object_key::do_compare (Object_key const *) const return 0; } - SCM Object_key::dump () const { - return scm_cons (scm_from_int (get_type()), - as_scheme()); + return scm_cons (scm_from_int (get_type ()), + as_scheme ()); } - - SCM Object_key::as_scheme () const { - return SCM_EOL; + return SCM_EOL; } -Object_key* +Object_key * Object_key::from_scheme (SCM) { - return new Object_key(); + return new Object_key (); } -struct { +struct Object_dumper_table_entry +{ Object_key_type type_; - Object_key* (*ctor_)(SCM); -} undumpers[] = { + Object_key *(*ctor_) (SCM); +}; + +static Object_dumper_table_entry undumpers[] += { {BASE_KEY, Object_key::from_scheme}, {COPIED_KEY, Copied_key::from_scheme}, {GENERAL_KEY, Lilypond_general_key::from_scheme}, {GROB_KEY, Lilypond_grob_key::from_scheme}, {CONTEXT_KEY, Lilypond_context_key::from_scheme}, - {KEY_COUNT,0}, + {KEY_COUNT, 0}, }; Object_key * @@ -118,12 +117,12 @@ Object_key::undump (SCM scm_key) { int t = scm_to_int (scm_car (scm_key)); assert (t == undumpers[t].type_); - return (undumpers[t].ctor_)(scm_cdr (scm_key)); + return (undumpers[t].ctor_) (scm_cdr (scm_key)); } /****************************************************************/ -Copied_key::Copied_key (Object_key const* key, int count) +Copied_key::Copied_key (Object_key const *key, int count) { copy_count_ = count; original_ = key; @@ -138,8 +137,8 @@ Copied_key::get_type () const int Copied_key::do_compare (Object_key const *key) const { - Copied_key const *other = dynamic_cast (key); - + Copied_key const *other = dynamic_cast (key); + int c = original_->compare (other->original_); if (c) return c; @@ -156,13 +155,12 @@ Copied_key::derived_mark () const SCM Copied_key::as_scheme () const { - return scm_list_2 (original_ ? original_->self_scm() : SCM_BOOL_F, scm_from_int (copy_count_)); + return scm_list_2 (original_ ? original_->self_scm () : SCM_BOOL_F, scm_from_int (copy_count_)); } - Object_key * -Copied_key::from_scheme (SCM a) +Copied_key::from_scheme (SCM a) { return new Copied_key (unsmob_key (scm_car (a)), - scm_to_int (scm_list_ref (a, scm_from_int (1)))); + scm_to_int (scm_list_ref (a, scm_from_int (1)))); }