translator_p_dict_p_ = new Scope (translator_tab_);
smobify_self ();
- scm_unprotect_object (variable_tab_->self_scm ());
- scm_unprotect_object (translator_tab_->self_scm ());
+ scm_gc_unprotect_object (variable_tab_->self_scm ());
+ scm_gc_unprotect_object (translator_tab_->self_scm ());
}
Music_output_def::~Music_output_def ()
style_sheet_ = SCM_EOL;
scaled_fonts_ = SCM_EOL;
smobify_self ();
- scm_unprotect_object (variable_tab_->self_scm ());
- scm_unprotect_object (translator_tab_->self_scm ());
+ scm_gc_unprotect_object (variable_tab_->self_scm ());
+ scm_gc_unprotect_object (translator_tab_->self_scm ());
scope_p_ = new Scope (variable_tab_);
Translator_def *tp = unsmob_translator_def (transdef);
assert (tp);
- String s = ly_scm2string (tp->type_name_);
+
+ String s;
+ if (gh_string_p (tp->type_name_))
+ s = ly_scm2string (tp->type_name_);
+
translator_p_dict_p_->set (s, transdef);
}
int
Music_output_def::print_smob (SCM s, SCM p, scm_print_state *)
{
- scm_puts ("#<Music_output_def>", p);
+ Translator_def * def = unsmob_translator_def (s);
+ scm_puts ("#<Music_output_def ", p);
+ scm_write (def->type_name_, p);
+ scm_puts (">", p);
return 1;
}