]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/translator-group.cc
Issue 4365: non-member unsmob<T> replaces T::unsmob and T::is_smob
[lilypond.git] / lily / translator-group.cc
index 24f1efaae94ed35758ef85ab36c96d6591ce04d8..73a9c602e031ebd3b17bf332b8001ac18d58c163 100644 (file)
@@ -39,7 +39,7 @@ void
 translator_each (SCM list, Translator_method method)
 {
   for (SCM p = list; scm_is_pair (p); p = scm_cdr (p))
-    (Translator::unsmob (scm_car (p))->*method) ();
+    (unsmob<Translator> (scm_car (p))->*method) ();
 }
 
 void
@@ -62,7 +62,7 @@ Translator_group::connect_to_context (Context *c)
                                     ly_symbol2scm ("AnnounceNewContext"));
   for (SCM tr_list = simple_trans_list_; scm_is_pair (tr_list); tr_list = scm_cdr (tr_list))
     {
-      Translator *tr = Translator::unsmob (scm_car (tr_list));
+      Translator *tr = unsmob<Translator> (scm_car (tr_list));
       tr->connect_to_context (c);
     }
 }
@@ -72,7 +72,7 @@ Translator_group::disconnect_from_context ()
 {
   for (SCM tr_list = simple_trans_list_; scm_is_pair (tr_list); tr_list = scm_cdr (tr_list))
     {
-      Translator *tr = Translator::unsmob (scm_car (tr_list));
+      Translator *tr = unsmob<Translator> (scm_car (tr_list));
       tr->disconnect_from_context (context_);
     }
   context_->event_source ()->remove_listener (GET_LISTENER (Translator_group, create_child_translator),
@@ -90,7 +90,7 @@ Translator_group::finalize ()
   Both filter_performers and filter_engravers used to use a direct dynamic_cast
   on the unsmobbed translator to be filtered, i.e.,
 
-  if (Performer::unsmob (scm_car (*tail)))
+  if (unsmob<Performer> (scm_car (*tail)))
 
   but this caused mysterious optimisation issues in several GUB builds.  See
   issue #818 for the background to this change.
@@ -101,7 +101,7 @@ filter_performers (SCM ell)
   SCM *tail = &ell;
   for (SCM p = ell; scm_is_pair (p); p = scm_cdr (p))
     {
-      if (Performer::is_smob (scm_car (*tail)))
+      if (unsmob<Performer> (scm_car (*tail)))
         *tail = scm_cdr (*tail);
       else
         tail = SCM_CDRLOC (*tail);
@@ -115,7 +115,7 @@ filter_engravers (SCM ell)
   SCM *tail = &ell;
   for (SCM p = ell; scm_is_pair (p); p = scm_cdr (p))
     {
-      if (Engraver::is_smob (scm_car (*tail)))
+      if (unsmob<Engraver> (scm_car (*tail)))
         *tail = scm_cdr (*tail);
       else
         tail = SCM_CDRLOC (*tail);
@@ -148,11 +148,11 @@ Translator_group::protect_event (SCM ev)
 void
 Translator_group::create_child_translator (SCM sev)
 {
-  Stream_event *ev = Stream_event::unsmob (sev);
+  Stream_event *ev = unsmob<Stream_event> (sev);
   // get from AnnounceNewContext
   SCM cs = ev->get_property ("context");
-  Context *new_context = Context::unsmob (cs);
-  Context_def *def = Context_def::unsmob (new_context->get_definition ());
+  Context *new_context = unsmob<Context> (cs);
+  Context_def *def = unsmob<Context_def> (new_context->get_definition ());
   SCM ops = new_context->get_definition_mods ();
 
   SCM trans_names = def->get_translator_names (ops);
@@ -248,7 +248,7 @@ precomputed_recurse_over_translators (Context *c, Translator_precompute_index id
 
   for (SCM s = c->children_contexts (); scm_is_pair (s);
        s = scm_cdr (s))
-    precomputed_recurse_over_translators (Context::unsmob (scm_car (s)), idx, dir);
+    precomputed_recurse_over_translators (unsmob<Context> (scm_car (s)), idx, dir);
 
   if (tg && dir == UP)
     {
@@ -272,7 +272,7 @@ recurse_over_translators (Context *c, Translator_method ptr,
 
   for (SCM s = c->children_contexts (); scm_is_pair (s);
        s = scm_cdr (s))
-    recurse_over_translators (Context::unsmob (scm_car (s)), ptr, tg_ptr, dir);
+    recurse_over_translators (unsmob<Context> (scm_car (s)), ptr, tg_ptr, dir);
 
   if (tg && dir == UP)
     {
@@ -301,7 +301,7 @@ Translator_group::precompute_method_bindings ()
 {
   for (SCM s = simple_trans_list_; scm_is_pair (s); s = scm_cdr (s))
     {
-      Translator *tr = Translator::unsmob (scm_car (s));
+      Translator *tr = unsmob<Translator> (scm_car (s));
       Translator::Callback ptrs[TRANSLATOR_METHOD_PRECOMPUTE_COUNT];
       tr->fetch_precomputable_methods (ptrs);