From 9f4d4a1ce5dc0fad4ed27c9cc1e357cae090b1b1 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 2 Feb 2006 01:14:16 +0000 Subject: [PATCH] * flower/include/std-vector.hh (insert): Remove, replace by std::vector interface. Update callers. * flower/include/array.icc (insert): Change signature to match std::vector interface. * flower/include/array.icc (vector_sort): Bugfix. --- ChangeLog | 6 ++++++ flower/file-path.cc | 2 +- flower/include/array.hh | 2 +- flower/include/array.icc | 3 ++- flower/include/parray.hh | 4 ++-- flower/include/std-vector.hh | 28 ---------------------------- flower/interval-set.cc | 4 ++-- flower/test-std.cc | 20 +++++++++++++++++++- lily/cluster.cc | 5 +++-- lily/context-def.cc | 2 +- lily/skyline.cc | 4 ++-- lily/spacing-spanner.cc | 4 ++-- lily/spanner.cc | 2 +- lily/vertical-align-engraver.cc | 4 ++-- 14 files changed, 44 insertions(+), 46 deletions(-) diff --git a/ChangeLog b/ChangeLog index 37c119fe69..2e453c3024 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2006-02-02 Jan Nieuwenhuizen + * flower/include/std-vector.hh (insert): Remove, replace by + std::vector interface. Update callers. + + * flower/include/array.icc (insert): Change signature to + match std::vector interface. + * flower/include/array.icc (vector_sort): Bugfix. 2006-02-02 Han-Wen Nienhuys diff --git a/flower/file-path.cc b/flower/file-path.cc index a25128213d..ea963ca355 100644 --- a/flower/file-path.cc +++ b/flower/file-path.cc @@ -212,5 +212,5 @@ File_path::append (std::string str) void File_path::prepend (std::string str) { - dirs_.insert (str, 0); + dirs_.insert (dirs_.begin (), str); } diff --git a/flower/include/array.hh b/flower/include/array.hh index f057dfd06d..8eeabac1d7 100644 --- a/flower/include/array.hh +++ b/flower/include/array.hh @@ -312,7 +312,7 @@ public: (*this)[j] = t; } - void insert (T k, vsize j); + void insert (iterator j, T k); void unordered_del (vsize i) { diff --git a/flower/include/array.icc b/flower/include/array.icc index ac3823b11d..0d1c0ead72 100644 --- a/flower/include/array.icc +++ b/flower/include/array.icc @@ -38,8 +38,9 @@ arrcpy (T *dest, T const *src, vsize count) } template INLINE void -Array::insert (T k, vsize j) +Array::insert (iterator b, T k) { + vsize j = b - array_; #if !STD_VECTOR assert (j >= 0 && j <= size_); #else diff --git a/flower/include/parray.hh b/flower/include/parray.hh index 645091f2a3..b4d00af4f5 100644 --- a/flower/include/parray.hh +++ b/flower/include/parray.hh @@ -101,9 +101,9 @@ public: pop_back (); return t; } - void insert (T *t, vsize i) + void insert (iterator b, T *t) { - Array::insert (t, i); + Array::insert (b, t); } void push_back (T *t) { diff --git a/flower/include/std-vector.hh b/flower/include/std-vector.hh index 022d107b02..ca2e26ded3 100644 --- a/flower/include/std-vector.hh +++ b/flower/include/std-vector.hh @@ -51,34 +51,6 @@ namespace std { { } - iterator - iter (vsize n) - { - if (n == VPOS) - return this->end (); - return __vector::begin () + n; - } - - const_iterator - iter (vsize n) const - { - if (n == VPOS) - return this->end (); - return __vector::begin () + n; - } - - void - insert (T k, vsize i) - { - __vector::insert (this->iter (i), k); - } - - void - insert (vector &v, vsize i) - { - __vector::insert (iter (i), v.begin (), v.end ()); - } - void concat (vector const &v) { diff --git a/flower/interval-set.cc b/flower/interval-set.cc index 2073afda61..49ad550bf9 100644 --- a/flower/interval-set.cc +++ b/flower/interval-set.cc @@ -49,13 +49,13 @@ Interval_set::remove_interval (Interval rm) if (!before.is_empty () && before.length () > 0.0) { - allowed_regions_.insert (before, i); + allowed_regions_.insert (allowed_regions_.begin () + i, before); i++; } allowed_regions_.erase (allowed_regions_.begin () + i); if (!after.is_empty () && after.length () > 0.0) { - allowed_regions_.insert (after, i); + allowed_regions_.insert (allowed_regions_.begin () + i, after); i++; } } diff --git a/flower/test-std.cc b/flower/test-std.cc index 729073f8c6..bd79ffd95e 100644 --- a/flower/test-std.cc +++ b/flower/test-std.cc @@ -70,12 +70,29 @@ BOOST_AUTO_UNIT_TEST (vector_sorting) #else vector_sort (v, default_compare); #endif - print (v); BOOST_CHECK_EQUAL (v[0], 0); BOOST_CHECK_EQUAL (v[1], 1); BOOST_CHECK_EQUAL (v[2], 2); } +BOOST_AUTO_UNIT_TEST (vector_insert) +{ + vector v; + v.push_back (0); +#if VECTOR_INSERT + v.insert (1, 0); +#else + v.insert (v.begin (), 1); +#endif + BOOST_CHECK_EQUAL (v[0], 1); +#if VECTOR_INSERT + v.insert (2, v.size ()); +#else + v.insert (v.end (), 2); +#endif + BOOST_CHECK_EQUAL (v.back (), 2); +} + test_suite* init_unit_test_suite (int, char**) { @@ -83,5 +100,6 @@ init_unit_test_suite (int, char**) test->add (BOOST_TEST_CASE (vector_erase)); test->add (BOOST_TEST_CASE (vector_slice)); test->add (BOOST_TEST_CASE (vector_sorting)); + test->add (BOOST_TEST_CASE (vector_insert)); return test; } diff --git a/lily/cluster.cc b/lily/cluster.cc index 02fd9e3b40..ade7667c63 100644 --- a/lily/cluster.cc +++ b/lily/cluster.cc @@ -184,8 +184,9 @@ Cluster::print (SCM smob) Interval v = col->extent (next_commony, Y_AXIS); Real x = right_bound->relative_coordinate (commonx, X_AXIS) - left_coord; - bottom_points.insert (Offset (x, v[DOWN]), 0); - top_points.insert (Offset (x, v[UP]), 0); + bottom_points.insert (bottom_points.begin (), + Offset (x, v[DOWN])); + top_points.insert (top_points.begin (), Offset (x, v[UP])); } } } diff --git a/lily/context-def.cc b/lily/context-def.cc index 4dd527defb..906a42eb41 100644 --- a/lily/context-def.cc +++ b/lily/context-def.cc @@ -227,7 +227,7 @@ Context_def::path_to_acceptable_context (SCM type_sym, Output_def *odef) const if (result.size () && result.size () < best_depth) { best_depth = result.size (); - result.insert (g, 0); + result.insert (result.begin (), g); best_result = result; } } diff --git a/lily/skyline.cc b/lily/skyline.cc index 09ff410cda..18696b8eeb 100644 --- a/lily/skyline.cc +++ b/lily/skyline.cc @@ -72,12 +72,12 @@ insert_extent_into_skyline (std::vector *line, Box b, Axis line_a Interval e3 (extent[RIGHT], line->elem (i).width_[RIGHT]); if (!e3.is_empty () && e3.length () > EPS) - line->insert (Skyline_entry (e3, my_height), i + 1); + line->insert (line->begin () + i + 1, Skyline_entry (e3, my_height)); line->elem_ref (i).height_ = stick_out; line->elem_ref (i).width_ = w; if (!e1.is_empty () && e1.length () > EPS) - line->insert (Skyline_entry (e1, my_height), i); + line->insert (line->begin () + i, Skyline_entry (e1, my_height)); } } } diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc index 2ac4caf13e..6300c99794 100644 --- a/lily/spacing-spanner.cc +++ b/lily/spacing-spanner.cc @@ -122,8 +122,8 @@ Spacing_spanner::find_shortest (Grob *me, Link_array const &cols) { if (durations[j] > shortest_in_measure) { - counts.insert (1, j); - durations.insert (shortest_in_measure, j); + counts.insert (counts.begin () + j, 1); + durations.insert (durations.begin () + j, shortest_in_measure); break; } else if (durations[j] == shortest_in_measure) diff --git a/lily/spanner.cc b/lily/spanner.cc index 8a7a1fdc4f..e80f1efce3 100644 --- a/lily/spanner.cc +++ b/lily/spanner.cc @@ -83,7 +83,7 @@ Spanner::do_break_processing () System *root = get_root_system (this); Link_array break_points = root->broken_col_range (left, right); - break_points.insert (left, 0); + break_points.insert (break_points.begin () + 0, left); break_points.push_back (right); for (vsize i = 1; i < break_points.size (); i++) diff --git a/lily/vertical-align-engraver.cc b/lily/vertical-align-engraver.cc index 27f00f231b..de78c3f835 100644 --- a/lily/vertical-align-engraver.cc +++ b/lily/vertical-align-engraver.cc @@ -124,12 +124,12 @@ Vertical_align_engraver::acknowledge_axis_group (Grob_info i) { if (arr[i] == before_grob) { - arr.insert (added, i); + arr.insert (arr.begin () + i, added); break; } else if (arr[i] == after_grob) { - arr.insert (added, i + 1); + arr.insert (arr.begin () + i + 1, added); break; } } -- 2.39.2