- if (!ctor_global_static_arr_p_)
- ctor_global_static_arr_p_ = new Array<Translator_ctor>;
- ctor_global_static_arr_p_->push (c);
+ if (!global_translator_dict)
+ global_translator_dict = new Scheme_hash_table;
+
+ SCM k = ly_symbol2scm (classname (t));
+ global_translator_dict->set (k, t->self_scm ());
+
+ scm_gc_unprotect_object (t->self_scm ());