]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/include/parray.hh
* The grand 2005-2006 replace.
[lilypond.git] / flower / include / parray.hh
index 5467bf2573e94f3dc18560612e6762b222f146ff..d7a4afba00005cecbe63a41bc8b563e0dad52b7f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef PARRAY_HH
@@ -58,12 +58,12 @@ public:
   }
 
   /// access element
-  T *&operator[] (int i)
+  T *&operator [] (int i)
   {
     return (T *&) Array<void *>::elem_ref (i);
   }
   /// access element
-  T *const operator[] (int i) const
+  T *const operator [] (int i) const
   {
     return (T *const) Array<void *>::elem (i);
   }
@@ -91,23 +91,20 @@ public:
   void substitute (T *old, T *new_p)
   {
     int i;
-    while ((i = find_index (old)) >=0)
+    while ((i = find_index (old)) >= 0)
       if (new_p)
-       elem_ref (i) =new_p;
+       elem_ref (i) = new_p;
       else
        del (i);
   }
   void unordered_substitute (T *old, T *new_p)
   {
     int i;
-    while ((i = find_index (old)) >=0)
+    while ((i = find_index (old)) >= 0)
       if (new_p)
-       elem_ref (i) =new_p;
+       elem_ref (i) = new_p;
       else
-       {
-         unordered_del (i);
-       }
-
+       unordered_del (i);
   }
   void default_sort ()
   {
@@ -160,7 +157,7 @@ public:
     return (T *) Array<void *>::get (i);
   }
   Link_array<T>
-  slice (int l, int u)
+  slice (int l, int u) const
   {
     return Array<void *>::slice (l, u);
   }
@@ -185,7 +182,7 @@ public:
   }
 };
 
-template < class T, class V>
+template<class T, class V>
 Link_array<T>
 typecasts (Link_array<V> const &a, T * /* dummy */)
 {
@@ -207,7 +204,7 @@ Link_array<T>::sort (int (*compare) (T *const &, T *const &), int lower, int upp
     return;
   swap (lower, (lower + upper) / 2);
   int last = lower;
-  for (int i= lower +1; i <= upper; i++)
+  for (int i = lower +1; i <= upper; i++)
     if (compare (elem (i), elem (lower)) < 0)
       swap (++last, i);
   swap (lower, last);
@@ -220,9 +217,7 @@ void
 junk_pointers (Link_array<T> &a)
 {
   for (int i = 0; i < a.size (); i++)
-    {
-      delete a[i];
-    }
+    delete a[i];
   a.clear ();
 }
 
@@ -233,12 +228,10 @@ template<class T>
 int
 binsearch (Array<T> const &arr, T t, int (*compare) (T const &, T const &))
 {
-  int lo;
-  int hi;
   int cmp;
   int result;
-  lo = 0;
-  hi = Array<T>::maxkey;
+  int lo = 0;
+  int hi = arr.size ();
 
   /* binary search */
   do
@@ -253,6 +246,7 @@ binsearch (Array<T> const &arr, T t, int (*compare) (T const &, T const &))
        lo = cmp;
     }
   while (hi - lo > 1);
+
   if (!compare (t, arr[lo]))
     return lo;
   else
@@ -262,13 +256,12 @@ binsearch (Array<T> const &arr, T t, int (*compare) (T const &, T const &))
 template<class T>
 int
 binsearch_links (Link_array<T> const &arr, T *t,
-                int (*compare) (T *const &, T *const &),
-                int lo = 0, int hi = -1)
+                int (*compare) (T *const &, T *const &))
 {
   int cmp;
   int result;
-  if (hi< 0)
-    hi = arr.size ();
+  int lo = 0;
+  int hi = arr.size ();
 
   if (hi == 0)
     return -1;
@@ -286,6 +279,7 @@ binsearch_links (Link_array<T> const &arr, T *t,
        lo = cmp;
     }
   while (hi - lo > 1);
+
   if (!compare (t, arr[lo]))
     return lo;
   else