diff --git a/src/bluetooth/qlowenergycontroller_osx.mm b/src/bluetooth/qlowenergycontroller_osx.mm index 46782a2223d6aa5aa684325fbc95f23dc7088b4e..d01686ae62602a9ae069062aef7202ff274a716b 100644 --- a/src/bluetooth/qlowenergycontroller_osx.mm +++ b/src/bluetooth/qlowenergycontroller_osx.mm @@ -1372,6 +1372,7 @@ QLowEnergyService *QLowEnergyController::addService(const QLowEnergyServiceData if (const auto servicePrivate = [osx_d_ptr->peripheralManager addService:data]) { servicePrivate->setController(osx_d_ptr); + servicePrivate->state = QLowEnergyService::LocalService; osx_d_ptr->discoveredServices.insert(servicePrivate->uuid, servicePrivate); return new QLowEnergyService(servicePrivate, parent); } diff --git a/src/bluetooth/qlowenergycontrollerbase.cpp b/src/bluetooth/qlowenergycontrollerbase.cpp index bfdd61a6d496e6e9752b245b03c491c08fa864b9..86108648bb9d1ed690f844fef2e9f2c03eee012b 100644 --- a/src/bluetooth/qlowenergycontrollerbase.cpp +++ b/src/bluetooth/qlowenergycontrollerbase.cpp @@ -255,10 +255,11 @@ quint16 QLowEnergyControllerPrivate::updateValueOfDescriptor( void QLowEnergyControllerPrivate::invalidateServices() { - for (QSharedPointer<QLowEnergyServicePrivate> service : serviceList.values()) { + for (QSharedPointer<QLowEnergyServicePrivate> service : serviceList.values()) + service->setController(nullptr); + + for (QSharedPointer<QLowEnergyServicePrivate> service : localServices.values()) service->setController(nullptr); - service->setState(QLowEnergyService::InvalidService); - } serviceList.clear(); localServices.clear(); @@ -273,8 +274,8 @@ QLowEnergyService *QLowEnergyControllerPrivate::addServiceHelper( // for it. const auto servicePrivate = QSharedPointer<QLowEnergyServicePrivate>::create(); - servicePrivate->state = QLowEnergyService::LocalService; servicePrivate->setController(this); + servicePrivate->state = QLowEnergyService::LocalService; servicePrivate->uuid = service.uuid(); servicePrivate->type = service.type() == QLowEnergyServiceData::ServiceTypePrimary ? QLowEnergyService::PrimaryService : QLowEnergyService::IncludedService;