From fe7b48b43e83098d9ae451450819c07b58ee4d5f Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Wed, 4 Mar 2026 16:16:26 +0000 Subject: Only reset the specific type of reference when adding services. --- src/modules.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/modules.cpp') diff --git a/src/modules.cpp b/src/modules.cpp index d0f4811e6..89022bd5f 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -36,13 +36,16 @@ static insp::intrusive_list* dynrefs = nullptr; -void dynamic_reference_base::reset_all() +void dynamic_reference_base::reset_all(const std::string& stype) { if (!dynrefs) return; for (auto* dynref : *dynrefs) - dynref->resolve(); + { + if (stype.empty() || dynref->service_type == stype) + dynref->resolve(); + } } Module::Module(int mprops, const std::string& mdesc) @@ -766,7 +769,7 @@ void ModuleManager::AddReferent(const std::string& stype, const std::string& sna (void*)service, stype, sname); #endif this->Services.emplace(std::make_pair(stype, sname), service); - dynamic_reference_base::reset_all(); + dynamic_reference_base::reset_all(stype); } void ModuleManager::DelReferent(ServiceProvider* service) -- cgit v1.3.1-10-gc9f91