Scheme_hash_table * tab = new Scheme_hash_table (*s.properties_dict ());
properties_scm_ = tab->self_scm ();
- scm_unprotect_object (tab->self_scm ());
+ scm_gc_unprotect_object (tab->self_scm ());
}
Scheme_hash_table*
Scheme_hash_table *tab = new Scheme_hash_table ;
properties_scm_ = tab->self_scm ();
- scm_unprotect_object (tab->self_scm ());
+ scm_gc_unprotect_object (tab->self_scm ());
}
void
SCM next = SCM_EOL;
for (SCM p = trans_group_list_; gh_pair_p (p); p = next)
{
- next = gh_cdr (p);
+ next = ly_cdr (p);
- Translator_group *trg = dynamic_cast<Translator_group*> (unsmob_translator (gh_car (p)));
+ Translator_group *trg = dynamic_cast<Translator_group*> (unsmob_translator (ly_car (p)));
trg->check_removal ();
if (trg->removable_b ())
return this;
Translator_group* r = 0;
- for (SCM p = trans_group_list_; !r && gh_pair_p (p); p = gh_cdr (p))
+ for (SCM p = trans_group_list_; !r && gh_pair_p (p); p = ly_cdr (p))
{
- Translator * t = unsmob_translator (gh_car (p));
+ Translator * t = unsmob_translator (ly_car (p));
r = dynamic_cast<Translator_group*> (t)->find_existing_translator_l (n, id);
}
{
Translator_group * new_group = path[i]->instantiate (output_def_l_);
+ if (i == path.size () -1)
+ new_group->id_str_ = id;
current->add_group_translator (new_group);
current = new_group;
}
- current->id_str_ = id;
+
return current;
}
{
bool hebbes_b =false;
- for (SCM p = simple_trans_list_; !hebbes_b && gh_pair_p (p); p = gh_cdr (p))
+ for (SCM p = simple_trans_list_; !hebbes_b && gh_pair_p (p); p = ly_cdr (p))
{
- hebbes_b = unsmob_translator (gh_car (p))->try_music (m);
+ hebbes_b = unsmob_translator (ly_car (p))->try_music (m);
}
return hebbes_b;
}
static void
static_each (SCM list, Method_pointer method)
{
- for (SCM p = list; gh_pair_p (p); p = gh_cdr (p))
- (unsmob_translator (gh_car (p))->*method) ();
+ for (SCM p = list; gh_pair_p (p); p = ly_cdr (p))
+ (unsmob_translator (ly_car (p))->*method) ();
}
return SCM_EOL when not found.
*/
SCM
-Translator_group::get_property (SCM sym) const
+Translator_group::internal_get_property (SCM sym) const
{
SCM val =SCM_EOL;
if (properties_dict ()->try_retrieve (sym, &val))
return val;
if (daddy_trans_l_)
- return daddy_trans_l_->get_property (sym);
+ return daddy_trans_l_->internal_get_property (sym);
return val;
}
-void
-Translator_group::set_property (String id, SCM val)
-{
- set_property (ly_symbol2scm (id.ch_C ()), val);
-}
-
void
-Translator_group::set_property (SCM sym, SCM val)
+Translator_group::internal_set_property (SCM sym, SCM val)
{
properties_dict ()->set (sym, val);
}
{
if (val != SCM_UNDEFINED)
{
- SCM prev = get_property (prop);
+ SCM prev = internal_get_property (prop);
if (gh_pair_p (prev) || prev == SCM_EOL)
{
bool ok = type_check_assignment (val, eltprop, ly_symbol2scm ("backend-type?"));
-
-
if (ok)
{
prev = gh_cons (gh_cons (eltprop, val), prev);
- set_property (prop, prev);
+ internal_set_property (prop, prev);
}
}
else
}
else
{
- SCM prev = get_property (prop);
+ SCM prev = internal_get_property (prop);
SCM newprops= SCM_EOL ;
- while (gh_pair_p (prev) && gh_caar (prev) != eltprop)
+ while (gh_pair_p (prev) && ly_caar (prev) != eltprop)
{
- newprops = gh_cons (gh_car (prev), newprops);
- prev = gh_cdr (prev);
+ newprops = gh_cons (ly_car (prev), newprops);
+ prev = ly_cdr (prev);
}
if (gh_pair_p (prev))
{
- newprops = scm_reverse_x (newprops, gh_cdr (prev));
- set_property (prop, newprops);
+ newprops = scm_reverse_x (newprops, ly_cdr (prev));
+ internal_set_property (prop, newprops);
}
}
}
{
SCM errport = scm_current_error_port ();
ok = false;
- SCM typefunc = scm_eval2 (ly_symbol2scm ("type-name"), SCM_EOL);
+ SCM typefunc = scm_primitive_eval (ly_symbol2scm ("type-name"));
SCM type_name = gh_call1 (typefunc, type_p);
scm_puts (_f ("Type check for `%s' failed; value `%s' must be of type `%s'",
warning (_ ("ly-get-trans-property: expecting a Translator_group argument"));
return SCM_EOL;
}
- return tr->get_property (name);
+ return tr->internal_get_property (name);
}
SCM
Translator_group* tr= dynamic_cast<Translator_group*> (t);
if (tr)
{
- tr->set_property (name, val);
+ tr->internal_set_property (name, val);
}
return SCM_UNSPECIFIED;
}
void
add_trans_scm_funcs ()
{
- scm_make_gsubr ("ly-get-trans-property", 2, 0, 0, (Scheme_function_unknown)ly_get_trans_property);
- scm_make_gsubr ("ly-set-trans-property", 3, 0, 0, (Scheme_function_unknown)ly_set_trans_property);
+ scm_c_define_gsubr ("ly-get-trans-property", 2, 0, 0, (Scheme_function_unknown)ly_get_trans_property);
+ scm_c_define_gsubr ("ly-set-trans-property", 3, 0, 0, (Scheme_function_unknown)ly_set_trans_property);
}
ADD_SCM_INIT_FUNC (trans_scm, add_trans_scm_funcs);