1515
1616void full_dependency_manager_t::node_changed (osmid_t id)
1717{
18- m_changed_nodes.set (id);
18+ m_changed_nodes.push_back (id);
1919}
2020
2121void full_dependency_manager_t::way_changed (osmid_t id)
2222{
23- m_changed_ways.set (id);
23+ m_changed_ways.push_back (id);
2424}
2525
2626void full_dependency_manager_t::relation_changed (osmid_t id)
2727{
28- m_changed_relations.set (id);
28+ m_changed_relations.push_back (id);
2929}
3030
3131void full_dependency_manager_t::after_nodes ()
@@ -39,29 +39,13 @@ void full_dependency_manager_t::after_nodes()
3939 m_changed_nodes.clear ();
4040}
4141
42- static osmium::index::IdSetSmall<osmid_t >
43- set_diff (osmium::index::IdSetSmall<osmid_t > const &set,
44- osmium::index::IdSetSmall<osmid_t > const &to_be_removed)
45- {
46- osmium::index::IdSetSmall<osmid_t > new_set;
47-
48- for (auto const id : set) {
49- if (!to_be_removed.get_binary_search (id)) {
50- new_set.set (id);
51- }
52- }
53-
54- return new_set;
55- }
56-
5742void full_dependency_manager_t::after_ways ()
5843{
5944 if (!m_changed_ways.empty ()) {
6045 if (!m_ways_pending_tracker.empty ()) {
6146 // Remove ids from changed ways in the input data from
6247 // m_ways_pending_tracker, because they have already been processed.
63- m_ways_pending_tracker =
64- set_diff (m_ways_pending_tracker, m_changed_ways);
48+ m_ways_pending_tracker.remove_ids_if_in (m_changed_ways);
6549
6650 // Add the list of pending way ids to the list of changed ways,
6751 // because we need the parents for them, too.
@@ -85,14 +69,13 @@ void full_dependency_manager_t::after_relations()
8569{
8670 // Remove ids from changed relations in the input data from
8771 // m_rels_pending_tracker, because they have already been processed.
88- m_rels_pending_tracker =
89- set_diff (m_rels_pending_tracker, m_changed_relations);
72+ m_rels_pending_tracker.remove_ids_if_in (m_changed_relations);
9073
9174 m_changed_relations.clear ();
9275}
9376
9477void full_dependency_manager_t::mark_parent_relations_as_pending (
95- osmium::index::IdSetSmall< osmid_t > const &way_ids)
78+ idlist_t const &way_ids)
9679{
9780 assert (m_rels_pending_tracker.empty ());
9881 m_object_store->get_way_parents (way_ids, &m_rels_pending_tracker);
@@ -102,18 +85,3 @@ bool full_dependency_manager_t::has_pending() const noexcept
10285{
10386 return !m_ways_pending_tracker.empty () || !m_rels_pending_tracker.empty ();
10487}
105-
106- idlist_t
107- full_dependency_manager_t ::get_ids(osmium::index::IdSetSmall<osmid_t > *tracker)
108- {
109- tracker->sort_unique ();
110-
111- idlist_t list;
112- list.reserve (tracker->size ());
113-
114- std::copy (tracker->cbegin (), tracker->cend (), std::back_inserter (list));
115-
116- tracker->clear ();
117-
118- return list;
119- }
0 commit comments