]> git.donarmstrong.com Git - lilypond.git/commitdiff
Reduce amount of consing (mostly replace reverse with reverse! where appropriate)
authorDavid Kastrup <dak@gnu.org>
Sun, 25 Mar 2012 09:12:05 +0000 (11:12 +0200)
committerDavid Kastrup <dak@gnu.org>
Wed, 28 Mar 2012 08:51:08 +0000 (10:51 +0200)
lily/articulations.cc
lily/key-engraver.cc
lily/line-spanner.cc
lily/page-breaking.cc
lily/page-layout-problem.cc
lily/paper-book.cc
lily/system.cc

index 28a81a6cf55e26c22b04584ee6424b8b58aaecaa..07f74e11c78f95ea489d894a23ea2372d7caa600 100644 (file)
@@ -81,5 +81,5 @@ articulation_list (vector<Stream_event *> note_events,
                                 articulations);
     }
 
-  return (scm_reverse (articulations));
+  return scm_reverse_x (articulations, SCM_EOL);
 }
index 55906b92d9da3c1a3fb32bd0101189027eb59811..fd60570821e05dc37f875d0255942d82b63f7284 100644 (file)
@@ -198,7 +198,7 @@ Key_engraver::read_event (Stream_event const *r)
         r->origin ()->warning ("Incomplete keyAlterationOrder for key signature");
     }
 
-  context ()->set_property ("keySignature", scm_reverse (accs));
+  context ()->set_property ("keySignature", scm_reverse_x (accs, SCM_EOL));
   context ()->set_property ("tonic",
                             r->get_property ("tonic"));
 }
index 028fe20e155d5db5ad46ec5624fa6baab3a2f406..418a0648748abd9736b7a9032ddfea504640606a 100644 (file)
@@ -75,8 +75,7 @@ Line_spanner::calc_bound_info (SCM smob, Direction dir)
                                 ? ly_symbol2scm ("left-broken")
                                 : ly_symbol2scm ("right-broken"), bound_details, SCM_EOL);
 
-      for (SCM s = scm_reverse (extra); scm_is_pair (s); s = scm_cdr (s))
-        details = scm_cons (scm_car (s), details);
+      details = scm_append (scm_list_2 (extra, details));
     }
 
   if (details == SCM_BOOL_F)
index d81e32d230108ff61bb54979837ffd9e1d121461..9956c9f9784450c3a7f7fec8fd2d435af2ff7f10 100644 (file)
@@ -466,7 +466,7 @@ Page_breaking::systems ()
           pb->unprotect ();
         }
     }
-  return scm_append (scm_reverse (ret));
+  return scm_append (scm_reverse_x (ret, SCM_EOL));
 }
 
 SCM
@@ -552,7 +552,7 @@ Page_breaking::draw_page (SCM systems, SCM configuration, int page_num, bool las
 {
   // Create a stencil for each system.
   SCM paper_systems = SCM_EOL;
-  for (SCM s = scm_reverse (systems); scm_is_pair (s); s = scm_cdr (s))
+  for (SCM s = systems; scm_is_pair (s); s = scm_cdr (s))
     {
       SCM paper_system = scm_car (s);
       if (Grob *g = unsmob_grob (scm_car (s)))
@@ -563,6 +563,7 @@ Page_breaking::draw_page (SCM systems, SCM configuration, int page_num, bool las
 
       paper_systems = scm_cons (paper_system, paper_systems);
     }
+  paper_systems = scm_reverse_x (paper_systems, SCM_EOL);
 
   // Create the page and draw it.
   SCM page = make_page (page_num, last);
index cc1a0cee1164bad1393e99dd536f30de5d965f6d..376716929cd6b2804c5f739cb0dc3471e48fbb16 100644 (file)
@@ -108,7 +108,7 @@ Page_layout_problem::get_footnotes_from_lines (SCM lines)
         programming_error ("Systems on a page must be a prob or grob.");
     }
 
-  return scm_reverse (out);
+  return scm_reverse_x (out, SCM_EOL);
 }
 
 /*
index 055a6a469b4addb0b8a4012be5514a2979ec00d8..f710078cf74e1fd95fc2755b0e38b1721a6e7b25 100644 (file)
@@ -580,10 +580,11 @@ Paper_book::systems ()
   systems_ = SCM_EOL;
   if (scm_is_pair (bookparts_))
     {
+      SCM system_list = SCM_EOL;
       for (SCM p = bookparts_; scm_is_pair (p); p = scm_cdr (p))
         if (Paper_book *pbookpart = unsmob_paper_book (scm_car (p)))
-          systems_ = scm_append_x (scm_list_2 (systems_,
-                                               pbookpart->systems ()));
+         system_list = scm_cons (pbookpart->systems (), system_list);
+      systems_ = scm_append (scm_reverse_x (system_list, SCM_EOL));
     }
   else
     {
@@ -596,15 +597,14 @@ Paper_book::systems ()
               SCM system_list
                 = scm_vector_to_list (pscore->get_paper_systems ());
 
-              system_list = scm_reverse (system_list);
-              systems_ = scm_append (scm_list_2 (system_list, systems_));
+              systems_ = scm_reverse_x (system_list, systems_);
             }
           else
             {
               systems_ = scm_cons (scm_car (s), systems_);
             }
         }
-      systems_ = scm_reverse (systems_);
+      systems_ = scm_reverse_x (systems_, SCM_EOL);
 
       /* backwards compatibility for the old page breaker */
       int i = 0;
index bc59dede88787e7d9e517d80473ae66c7164cd79..f58f1158d483ef54288b07aff00d81d64d66ce64 100644 (file)
@@ -206,7 +206,7 @@ System::get_broken_system_grobs ()
   SCM ret = SCM_EOL;
   for (vsize i = 0; i < broken_intos_.size (); i++)
     ret = scm_cons (broken_intos_[i]->self_scm (), ret);
-  return scm_reverse (ret);
+  return scm_reverse_x (ret, SCM_EOL);
 }
 
 SCM