X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftranslator-group.cc;h=e3f8cba3e8c7393b6a0ed493164c231842fb2541;hb=8eed539b0de1e13bd22ff02599ba0aa9135fb6d3;hp=99026ca051c48b3b1c9b2a66983dc6568376f19e;hpb=1de3d397c18622b6061402fef18e625701712bc5;p=lilypond.git diff --git a/lily/translator-group.cc b/lily/translator-group.cc index 99026ca051..e3f8cba3e8 100644 --- a/lily/translator-group.cc +++ b/lily/translator-group.cc @@ -35,8 +35,6 @@ #include "scm-hash.hh" #include "warn.hh" -using std::vector; - void translator_each (SCM list, Translator_method method) { @@ -172,7 +170,6 @@ Translator_group::create_child_translator (SCM sev) type = get_translator (definition); else if (ly_is_pair (definition)) { - type = get_translator (ly_symbol2scm ("Scheme_engraver")); is_scheme = true; } else if (ly_is_procedure (definition)) @@ -181,17 +178,15 @@ Translator_group::create_child_translator (SCM sev) // an argument and evaluates to an a-list scheme engraver // definition. definition = scm_call_1 (definition, cs); - type = get_translator (ly_symbol2scm ("Scheme_engraver")); is_scheme = true; } - if (!type) + if (!is_scheme && !type) warning (_f ("cannot find: `%s'", ly_symbol2string (scm_car (s)).c_str ())); else { - Translator *instance = type->clone (); - if (is_scheme) - dynamic_cast (instance)->init_from_scheme (definition); + Translator *instance = is_scheme ? new Scheme_engraver (definition) + : type->clone (); SCM str = instance->self_scm ();