From 1181196fab845025907a480c79c6afff90a8aeda Mon Sep 17 00:00:00 2001 From: Vivien Nicolas Date: Fri, 25 Feb 2022 23:13:05 +0100 Subject: [PATCH] [Darwin] Erase old services when they have been removed (#15572) --- src/platform/Darwin/DnssdImpl.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/platform/Darwin/DnssdImpl.cpp b/src/platform/Darwin/DnssdImpl.cpp index 413de03a7dbcfb..41e43da4783f5e 100644 --- a/src/platform/Darwin/DnssdImpl.cpp +++ b/src/platform/Darwin/DnssdImpl.cpp @@ -348,10 +348,13 @@ void OnBrowseRemove(BrowseContext * context, const char * name, const char * typ VerifyOrReturn(strcmp(kLocalDot, domain) == 0); - std::remove_if(context->services.begin(), context->services.end(), [name, type, interfaceId](const DnssdService & service) { - return strcmp(name, service.mName) == 0 && type == GetFullType(service.mType, service.mProtocol) && - service.mInterface == interfaceId; - }); + context->services.erase(std::remove_if(context->services.begin(), context->services.end(), + [name, type, interfaceId](const DnssdService & service) { + return strcmp(name, service.mName) == 0 && + type == GetFullType(service.mType, service.mProtocol) && + service.mInterface == interfaceId; + }), + context->services.end()); } static void OnBrowse(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceId, DNSServiceErrorType err, const char * name,