From 608ecff2e240d11073218d2065f5f2159d67814a Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Sat, 16 May 2026 17:02:36 +0200 Subject: [PATCH] Clear memory as early as possible. --- src/idlist.hpp | 2 ++ src/osmdata.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/idlist.hpp b/src/idlist.hpp index 0b6068e7b..9f833a48d 100644 --- a/src/idlist.hpp +++ b/src/idlist.hpp @@ -58,6 +58,8 @@ class idlist_t void clear() noexcept { m_list.clear(); } + void shrink_to_fit() noexcept { m_list.shrink_to_fit(); } + void push_back(osmid_t id) { m_list.push_back(id); } void reserve(std::size_t size) { m_list.reserve(size); } diff --git a/src/osmdata.cpp b/src/osmdata.cpp index 3cc4c6a63..f9d3ee275 100644 --- a/src/osmdata.cpp +++ b/src/osmdata.cpp @@ -85,6 +85,7 @@ void osmdata_t::after_nodes() m_mid->get_node_parents(m_changed_nodes, &m_ways_pending_tracker, &m_rels_pending_tracker); m_changed_nodes.clear(); + m_changed_nodes.shrink_to_fit(); } } @@ -136,6 +137,7 @@ void osmdata_t::after_ways() m_mid->get_way_parents(m_changed_ways, &m_rels_pending_tracker); m_changed_ways.clear(); + m_changed_ways.shrink_to_fit(); return; } @@ -183,6 +185,7 @@ void osmdata_t::after_relations() m_rels_pending_tracker.remove_ids_if_in(m_changed_relations); m_changed_relations.clear(); + m_changed_relations.shrink_to_fit(); } m_output->sync();