Diff between a7272970390f44fb42764252ead298ba664aee90 and b72673c6084f7c7c32ed0c0ef44696882ee96aa5

Changed Files

File Additions Deletions Status
src/device.c +1 -2 modified
src/service.c +2 -1 modified
src/service.h +1 -1 modified

Full Patch

diff --git a/src/device.c b/src/device.c
index edd377c..afb0cfc 100644
--- a/src/device.c
+++ b/src/device.c
@@ -967,9 +967,8 @@ static void remove_service(gpointer data)
 	struct btd_service *service = data;
 	struct btd_device *device = btd_service_get_device(service);
 
-	service_shutdown(service);
 	device->pending = g_slist_remove(device->pending, service);
-	btd_service_unref(service);
+	service_remove(service);
 }
 
 static gboolean do_disconnect(gpointer user_data)
diff --git a/src/service.c b/src/service.c
index 83e1c1a..52a8291 100644
--- a/src/service.c
+++ b/src/service.c
@@ -168,12 +168,13 @@ int service_probe(struct btd_service *service)
 	return err;
 }
 
-void service_shutdown(struct btd_service *service)
+void service_remove(struct btd_service *service)
 {
 	change_state(service, BTD_SERVICE_STATE_UNAVAILABLE, 0);
 	service->profile->device_remove(service);
 	service->device = NULL;
 	service->profile = NULL;
+	btd_service_unref(service);
 }
 
 int btd_service_connect(struct btd_service *service)
diff --git a/src/service.h b/src/service.h
index 6ee8f17..5230115 100644
--- a/src/service.h
+++ b/src/service.h
@@ -46,7 +46,7 @@ struct btd_service *service_create(struct btd_device *device,
 						struct btd_profile *profile);
 
 int service_probe(struct btd_service *service);
-void service_shutdown(struct btd_service *service);
+void service_remove(struct btd_service *service);
 
 /* Connection control API */
 int btd_service_connect(struct btd_service *service);