]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/killing-cons.tcc
release: 1.1.32
[lilypond.git] / lily / include / killing-cons.tcc
index d67e6b56b787183e93a5c01d3b5cab28c86af5f4..9135aae3d8d9207453fb1087f3826ce23d23dc0f 100644 (file)
@@ -10,6 +10,7 @@
 #ifndef KILLING_CONS_TCC
 #define KILLING_CONS_TCC
 
+#include "cons.hh"
 
 template<class T>
 Killing_cons<T>::~Killing_cons ()
@@ -18,35 +19,25 @@ Killing_cons<T>::~Killing_cons ()
 }
 
 template<class T>
-Cons_list<T>
-copy_killing_cons_list (Cons<T> *src)
+void 
+copy_killing_cons_list (Cons_list<T> &dest, Cons<T> *src) 
 {
-  Cons_list<T> kl;
-
   for (; src; src  = src->next_)
     {
       T *t = new T(*src->car_);
-      *kl.tail_ = new Killing_cons<T> (t, 0);
-      kl.tail_ = &(*kl.tail_)->next_;
+      dest.append ( new Killing_cons<T> (t, 0));
     }
-  
-  return kl;
 }
 
 template<class T>
-Cons_list<T>
-clone_killing_cons_list (Cons<T> *src)
+void
+clone_killing_cons_list (Cons_list<T> & dest, Cons<T> *src)
 {
-  Cons_list<T> kl;
-
   for (; src; src  = src->next_)
     {
       T *t = src->car_->clone ();
-      *kl.tail_ = new Killing_cons<T> (t, 0);
-      kl.tail_ = &(*kl.pp)->next_;
+      dest.append (new Killing_cons<T> (t, 0));      
     }
-  
-  return kl;
 }