From d8e8078b3fd99c011db4e35d9bd2750b390afe6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sun, 22 Nov 2015 11:51:56 +0100 Subject: [PATCH] net_server: warning on delete of address of a reference. * fixes #12244. --- src/servers/net/Services.cpp | 26 +++++++++++++------------- src/servers/net/Services.h | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/servers/net/Services.cpp b/src/servers/net/Services.cpp index 7ecb92555f..453f26f388 100644 --- a/src/servers/net/Services.cpp +++ b/src/servers/net/Services.cpp @@ -178,7 +178,7 @@ Services::~Services() // stop all services while (!fNameMap.empty()) { - _StopService(*fNameMap.begin()->second); + _StopService(fNameMap.begin()->second); } } @@ -297,20 +297,20 @@ Services::_StartService(struct service& service) status_t -Services::_StopService(struct service& service) +Services::_StopService(struct service* service) { - printf("Stop service '%s'\n", service.name.c_str()); + printf("Stop service '%s'\n", service->name.c_str()); // remove service from maps { - ServiceNameMap::iterator iterator = fNameMap.find(service.name); + ServiceNameMap::iterator iterator = fNameMap.find(service->name); if (iterator != fNameMap.end()) fNameMap.erase(iterator); } - if (!service.stand_alone) { - ConnectionList::const_iterator iterator = service.connections.begin(); - for (; iterator != service.connections.end(); iterator++) { + if (!service->stand_alone) { + ConnectionList::const_iterator iterator = service->connections.begin(); + for (; iterator != service->connections.end(); iterator++) { const service_connection& connection = *iterator; ServiceSocketMap::iterator socketIterator @@ -324,12 +324,12 @@ Services::_StopService(struct service& service) } // Shutdown the running server, if any - if (service.process != -1) { - printf(" Sending SIGTERM to process %" B_PRId32 "\n", service.process); - kill(-service.process, SIGTERM); + if (service->process != -1) { + printf(" Sending SIGTERM to process %" B_PRId32 "\n", service->process); + kill(-service->process, SIGTERM); } - delete &service; + delete service; return B_OK; } @@ -394,7 +394,7 @@ Services::_Update(const BMessage& services) if (*service != *iterator->second) { printf("Restart service %s\n", service->name.c_str()); - _StopService(*iterator->second); + _StopService(iterator->second); _StartService(*service); } else iterator->second->update = fUpdate; @@ -410,7 +410,7 @@ Services::_Update(const BMessage& services) if (service->update != fUpdate) { // this service has to be removed - _StopService(*service); + _StopService(service); } } } diff --git a/src/servers/net/Services.h b/src/servers/net/Services.h index 2ac57d8ad6..ce8343691f 100644 --- a/src/servers/net/Services.h +++ b/src/servers/net/Services.h @@ -36,7 +36,7 @@ private: void _NotifyListener(bool quit = false); void _UpdateMinMaxSocket(int socket); status_t _StartService(struct service& service); - status_t _StopService(struct service& service); + status_t _StopService(struct service* service); status_t _ToService(const BMessage& message, struct service*& service); void _Update(const BMessage& services);