shared/gatt-client: Fix removing services from pending list
We should remove from pending list service which was just processed,
not the one that has just started being processed.
diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c
index e1d489d..f0850e0 100644
--- a/src/shared/gatt-client.c
+++ b/src/shared/gatt-client.c
@@ -591,10 +591,13 @@
/* Adjust current service */
svc = gatt_db_get_service(client->db, chrc_data->value_handle);
if (op->cur_svc != svc) {
- queue_remove(op->pending_svcs, svc);
+ if (op->cur_svc) {
+ queue_remove(op->pending_svcs, op->cur_svc);
- /* Done with the current service */
- gatt_db_service_set_active(op->cur_svc, true);
+ /* Done with the current service */
+ gatt_db_service_set_active(op->cur_svc, true);
+ }
+
op->cur_svc = svc;
}