]> git.donarmstrong.com Git - lilypond.git/commitdiff
* flower/include/std-vector.hh (del): Remove. Use erase (),
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 1 Feb 2006 00:09:15 +0000 (00:09 +0000)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 1 Feb 2006 00:09:15 +0000 (00:09 +0000)
update callers.

* flower/include/array.hh (begin, end): Add.
(del, get): Remove.

18 files changed:
ChangeLog
flower/include/array.hh
flower/include/parray.hh
flower/include/std-vector.hh
flower/interval-set.cc
lily/accidental-engraver.cc
lily/align-interface.cc
lily/beam-concave.cc
lily/bezier.cc
lily/break-algorithm.cc
lily/break-align-interface.cc
lily/dot-column.cc
lily/new-fingering-engraver.cc
lily/note-spacing.cc
lily/paper-column.cc
lily/piano-pedal-engraver.cc
lily/tie-engraver.cc
lily/tuplet-engraver.cc

index 91a89e14d0ad3361cd2e25f06d35c68badb9fbe2..437999887128bb1eb94624098cfce6a8f5089aff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-02-01  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+       * flower/include/std-vector.hh (del): Remove.  Use erase (),
+       update callers.
+
+       * flower/include/array.hh (begin, end): Add.
+       (del, get): Remove.
+
 2006-02-01  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
        * lily/prob.cc (Prob): copy type_ too.
index 400aeea233122c4f9592348b582983bd6c65c98c..9a5b2e40266d8260efc3fbfb070109592ab6af02 100644 (file)
@@ -109,8 +109,75 @@ public:
     size_ = s;
   }
 
+  T*
+  data ()
+  {
+    return array_;
+  }
+
+  typedef T* iterator;
+
+  iterator
+  begin ()
+  {
+    return data ();
+  }
+
+  iterator const
+  begin () const
+  {
+    return data ();
+  }
+  
+  iterator
+  end ()
+  {
+    return data () + size_;
+  }
+
+  iterator const
+  end () const
+  {
+    return data () + size_;
+  }
+
+  void clear ()
+  {
+    resize (0);
+  }
+
+  /* std::vector uses unchecked variant for [] */
+  T &operator [] (vsize i)
+  {
+    return elem_ref (i);
+  }
+
+  /* std::vector uses unchecked variant for [] */
+  T const &operator [] (vsize i) const
+  {
+    return elem_ref (i);
+  }
+
+  iterator
+  erase (iterator p)
+  {
+    vsize i = p - data ();
+#if !STD_VECTOR
+    assert (i >= 0 && i < size_);
+#else
+    assert (i < size_);
+#endif
+    arrcpy (array_ + i, array_ + i + 1, size_ - i - 1);
+    size_--;
+    return p;
+  }
+
 
 
+
+  /* Flower intererface */
+
+  
   /// check invariants
   void OK () const;
   /** report the size_.
@@ -118,12 +185,6 @@ public:
       {setsize_}
   */
 
-  /// POST: size () == 0
-  void clear ()
-  {
-    size_ = 0;
-  }
-
   Array (T *tp, vsize n)
   {
     array_ = new T[n];
@@ -169,16 +230,6 @@ public:
 
   T *remove_array ();
 
-  /// access element
-  T &operator [] (vsize i)
-  {
-    return elem_ref (i);
-  }
-  /// access element
-  T const &operator [] (vsize i) const
-  {
-    return elem_ref (i);
-  }
   /// access element
   T &elem_ref (vsize i) const
   {
@@ -251,30 +302,12 @@ public:
   }
 
   void insert (T k, vsize j);
-  /**
-     remove  i-th element, and return it.
-  */
-  T get (vsize i)
-  {
-    T t = elem (i);
-    del (i);
-    return t;
-  }
+
   void unordered_del (vsize i)
   {
     elem_ref (i) = back ();
     resize (size () -1);
   }
-  void del (vsize i)
-  {
-#if !STD_VECTOR
-    assert (i >= 0 && i < size_);
-#else
-    assert (i < size_);
-#endif
-    arrcpy (array_ + i, array_ + i + 1, size_ - i - 1);
-    size_--;
-  }
   // quicksort.
   void sort (int (*compare) (T const &, T const &),
             vsize lower=VPOS, vsize upper=VPOS);
index 4378dda8b8e39295b3c0134899f4e1a0663e6859..40dcb2230570269296fc59169557c5be31efb92c 100644 (file)
@@ -41,15 +41,18 @@ public:
     return (T *&) Array<void *>::back ();
   }
 
-  /* Flower compat */
-  Array<void *>::del;
-  Array<void *>::unordered_del;
-  Array<void *>::size;
+  Array<void *>::begin;
   Array<void *>::clear;
+  Array<void *>::erase;
   Array<void *>::resize;
+  Array<void *>::size;
   Array<void *>::empty;
-  Array<void *>::reverse;
   Array<void *>::pop_back;
+
+
+  /* Flower compat */
+  Array<void *>::unordered_del;
+  Array<void *>::reverse;
   Array<void *>::tighten_maxsize;
 
   static int default_compare (T *const &p1, T *const &p2)
@@ -122,7 +125,7 @@ public:
       if (new_p)
        elem_ref (i) = new_p;
       else
-       del (i);
+       erase (begin () + i);
   }
   void unordered_substitute (T *old, T *new_p)
   {
@@ -137,6 +140,7 @@ public:
   {
     sort (default_compare);
   }
+
   // quicksort.
   void sort (int (*compare) (T *const &, T *const &),
             int lower = -1, int upper = -1);
@@ -171,9 +175,14 @@ public:
   {
     return (T **) Array<void *>::accesses ();
   }
-  T *get (int i)
+  /**
+     remove  i-th element, and return it.
+  */
+  T *get (vsize i)
   {
-    return (T *) Array<void *>::get (i);
+    T *t = elem (i);
+    Array<void*>::erase (Array<void*>::begin () + i);
+    return t;
   }
   Link_array<T>
   slice (int l, int u) const
@@ -268,8 +277,8 @@ binsearch (Array<T> const &arr, T t, int (*compare) (T const &, T const &))
 
   if (!compare (t, arr[lo]))
     return lo;
-  else
-    return -1;              /* not found */
+  /* not found */
+  return -1;
 }
 
 template<class T>
@@ -301,8 +310,8 @@ binsearch_links (Link_array<T> const &arr, T *t,
 
   if (!compare (t, arr[lo]))
     return lo;
-  else
-    return -1;              /* not found */
+  /* not found */
+  return -1;
 }
 
 template<class T>
index 8fda47c8b24c258f2784fe07b68eadcabed027f2..ce88a5d6285055872c449eb0b4773be13ff09d38 100644 (file)
@@ -41,7 +41,6 @@ namespace std {
   {
   public:
     typedef typename __vector<T>::iterator iterator;
-    //typedef int (*compare) (T *const&, T *const&);
 
     vector<T> () : __vector<T> ()
     {
@@ -108,12 +107,6 @@ namespace std {
        return this->at (i);
     }
 
-    T
-    del (vsize i)
-    {
-      return *__vector<T>::erase (iter (i));
-    }
-
     T const &
     elem (vsize i) const
     {
index 7c8bd0e6a1ac8df18747358c87b15423bb4830b3..2073afda61b5f587e0fb0eef399e3c869a63b55a 100644 (file)
@@ -52,7 +52,7 @@ Interval_set::remove_interval (Interval rm)
              allowed_regions_.insert (before, i);
              i++;
            }
-         allowed_regions_.del (i);
+         allowed_regions_.erase (allowed_regions_.begin () + i);
          if (!after.is_empty () && after.length () > 0.0)
            {
              allowed_regions_.insert (after, i);
index 2a3af602c12273c2b2dca0d93ad4070fb5d31970..b240dfa03250e8425b945b9a046620a785a6c47d 100644 (file)
@@ -462,7 +462,7 @@ Accidental_engraver::stop_translation_timestep ()
                g->set_object ("tie", ties_[j]->self_scm ());
                accidentals_[i].tied_ = true;
              }
-           ties_.del (j);
+           ties_.erase (ties_.begin () + j);
            break;
          }
     }
index 85074a4cf3e044cb01eabeca2f0ba06d351e29d9..2355ce11f465b913591519b0118ab22fffa0cac9 100644 (file)
@@ -110,7 +110,7 @@ Align_interface::align_to_fixed_distance (Grob *me, Axis a)
        Hara_kiri_group_spanner::consider_suicide (elems[j]);
 
       if (!elems[j]->is_live ())
-       elems.del (j);
+       elems.erase (elems.begin () + j);
     }
 
   for (vsize j = 0; j < elems.size (); j++)
index 00ceb61dcd8479e0bdf0354775278c34e9c52edf..81581bc66becd0743e583e737f305d12c85cd327 100644 (file)
@@ -97,7 +97,7 @@ Beam::calc_concaveness (SCM smob)
   for (vsize i = stems.size (); i--;)
     {
       if (Stem::is_invisible (stems[i]))
-       stems.del (i);
+       stems.erase (stems.begin () + i);
       else
        {
          if (Direction dir = get_grob_direction (stems[i]))
index 193018f21098373aa4b69fe55792080f56eb0e9e..47d0184329fa0e15696ac8bd85af493294be3657 100644 (file)
@@ -174,7 +174,7 @@ filter_solutions (std::vector<Real> sol)
 {
   for (vsize i = sol.size (); i--;)
     if (sol[i] < 0 || sol[i] > 1)
-      sol.del (i);
+      sol.erase (sol.begin () + i);
   return sol;
 }
 
index abe15eea2f785c84d76b5a7bfaf3554c1d6b434d..662ae54d1be882ec945b8f04dbf9734e5c863352 100644 (file)
@@ -27,7 +27,7 @@ Break_algorithm::find_break_indices () const
 
   if (linewidth_ <= 0)
     while (retval.size () > 2)
-      retval.del (1);
+      retval.erase (retval.begin () + 1);
 
   return retval;
 }
@@ -44,7 +44,7 @@ Break_algorithm::find_breaks () const
 
   if (linewidth_ <= 0)
     while (retval.size () > 2)
-      retval.del (1);
+      retval.erase (retval.begin () + 1);
 
   return retval;
 }
index 3aff11a20e7edcd19f9e48f429e10f45d46dea6a..ac5cfa33f3ae47fd782a8e5927a3e7fe0319dcd2 100644 (file)
@@ -74,7 +74,7 @@ Break_align_interface::ordered_elements (Grob *grob)
          if (g && sym == g->get_property ("break-align-symbol"))
            {
              new_elts.push_back (g);
-             writable_elts.del (i);
+             writable_elts.erase (writable_elts.begin () + i);
            }
        }
     }
index 78dbcabb4ca40fd8bc86289aa885847110b6944e..84f56b6418c247b9dbc2eeca087476e879fa413b 100644 (file)
@@ -230,7 +230,7 @@ Dot_column::calc_positioning_done (SCM smob)
   dots.sort (compare_position);
   for (vsize i = dots.size (); i--;)
     if (!dots[i]->is_live ())
-      dots.del (i);
+      dots.erase (dots.begin () + i);
 
   Dot_configuration cfg;
   for (vsize i = 0;i < dots.size (); i++)
index 9c1bb10d7d8d452388c5116830c02a9b8ecb1278..23d735ec9fdda173ae8da5b71d860861d7ab140d 100644 (file)
@@ -216,7 +216,7 @@ New_fingering_engraver::position_scripts (SCM orientations,
       if (to_dir (d))
        {
          ((to_dir (d) == UP) ? up : down).push_back ((*scripts)[i]);
-         scripts->del (i);
+         scripts->erase (scripts->begin () + i);
        }
     }
 
@@ -238,7 +238,7 @@ New_fingering_engraver::position_scripts (SCM orientations,
       if (down_p && !down.size () && scripts->size ())
        {
          down.push_back ((*scripts)[0]);
-         scripts->del (0);
+         scripts->erase (scripts->begin ());
        }
 
       horiz.concat (*scripts);
index 8206b3b4e92ce77f96ca5e5c3a5c11b4671c321d..78b1bcaf4a3fe7e79d1b75f52789f74590686d0f 100644 (file)
@@ -227,7 +227,7 @@ Note_spacing::right_column (Grob *me)
       for (vsize i = right.size (); i--;)
        {
          if (dynamic_cast<Item *> (right[i])->get_column () != mincol)
-           right.del (i);
+           right.erase (right.begin () + i);
        }
     }
 
index 3094f817593dfb1f13d3cc4ab786f8026c74fe93..5688d49e6177eeff56950ccc14b3b2210e7de3e3 100644 (file)
@@ -164,9 +164,8 @@ Paper_column::before_line_breaking (SCM grob)
       Grob *g = array[i];
 
       if (!g || !g->is_live ())
-       {                       // UGH . potentially quadratic.
-         array.del (i);
-       }
+       /* UGH . potentially quadratic. */
+       array.erase (array.begin () + i);
     }
 
   return SCM_UNSPECIFIED;
index 646c7e79d4d8ef530ad130ac7b9c13193ac93656..1177347f09379c5a5f469ed91acfea7ffafb3582 100644 (file)
@@ -440,7 +440,7 @@ Piano_pedal_engraver::del_linespanner (Spanner *g)
 {
   int idx = previous_.find_index (g);
   if (idx >= 0)
-    previous_.del (idx);
+    previous_.erase (previous_.begin () + idx);
 }
 
 void
index a52a2c73b30b4595b2f511d9ccc6c641c0c84788..9ec95d91a14a8e49446c4ef5dde2e8627949a481 100644 (file)
@@ -121,7 +121,7 @@ Tie_engraver::acknowledge_note_head (Grob_info i)
          Tie::set_head (p, RIGHT, h);
 
          ties_.push_back (p);
-         heads_to_tie_.del (i);
+         heads_to_tie_.erase (heads_to_tie_.begin () + i);
        }
     }
 
index 3d24023e41badd58d754d35a1ab81843dd5be52a..5ad157de110c2246bbb5817913683ea480028fa0 100644 (file)
@@ -166,7 +166,7 @@ Tuplet_engraver::start_translation_timestep ()
        }
 
       if (now.main_part_ >= tuplets_[i].stop_)
-       tuplets_.del (i);
+       tuplets_.erase (tuplets_.begin () + i);
     }
 }