]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/translator-ctors.cc
*** empty log message ***
[lilypond.git] / lily / translator-ctors.cc
index 783c39698b56e2328c212e982d611a0ec540c0e3..5998b4f234793bb9e958c6ec5c50f37e20e517fb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "translator.hh"
 
 Scheme_hash_table *global_translator_dict=0;
 
-LY_DEFINE(get_all_translators,"ly:get-all-translators", 0, 0, 0,  (),
-         "Return an list of a all translator objects that may be instantiated "
-         " during a lilypond run.")
+LY_DEFINE (get_all_translators,"ly:get-all-translators", 0, 0, 0,  (),
+         "Return a list of all translator objects that may be instantiated. "
+          )
 {
   SCM l = global_translator_dict ?  global_translator_dict->to_alist () : SCM_EOL;
 
-  for (SCM s =l; gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s =l; ly_c_pair_p (s); s = ly_cdr (s))
     {
-      gh_set_car_x (s, gh_cdar (s));
+      scm_set_car_x (s, ly_cdar (s));
     }
 
   return l;
@@ -38,6 +38,8 @@ add_translator (Translator *t)
 
   SCM k= ly_symbol2scm  (classname (t));
   global_translator_dict->set (k, t->self_scm ());
+
+  scm_gc_unprotect_object (t->self_scm ());
 }
 
 Translator*