X Tutup
Skip to content

Commit deac0c9

Browse files
committed
sd-device-enumerator: introduce device_enumerator_unref_devices() helper function
1 parent 9e87196 commit deac0c9

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

src/libsystemd/sd-device/device-enumerator.c

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,24 @@ _public_ int sd_device_enumerator_new(sd_device_enumerator **ret) {
6262
return 0;
6363
}
6464

65+
static void device_unref_many(sd_device **devices, size_t n) {
66+
assert(devices || n == 0);
67+
68+
for (size_t i = 0; i < n; i++)
69+
sd_device_unref(devices[i]);
70+
}
71+
72+
static void device_enumerator_unref_devices(sd_device_enumerator *enumerator) {
73+
assert(enumerator);
74+
75+
device_unref_many(enumerator->devices, enumerator->n_devices);
76+
enumerator->n_devices = 0;
77+
}
78+
6579
static sd_device_enumerator *device_enumerator_free(sd_device_enumerator *enumerator) {
6680
assert(enumerator);
6781

68-
for (size_t i = 0; i < enumerator->n_devices; i++)
69-
sd_device_unref(enumerator->devices[i]);
82+
device_enumerator_unref_devices(enumerator);
7083

7184
free(enumerator->devices);
7285
set_free(enumerator->match_subsystem);
@@ -744,10 +757,7 @@ int device_enumerator_scan_devices(sd_device_enumerator *enumerator) {
744757
enumerator->type == DEVICE_ENUMERATION_TYPE_DEVICES)
745758
return 0;
746759

747-
for (size_t i = 0; i < enumerator->n_devices; i++)
748-
sd_device_unref(enumerator->devices[i]);
749-
750-
enumerator->n_devices = 0;
760+
device_enumerator_unref_devices(enumerator);
751761

752762
if (!set_isempty(enumerator->match_tag)) {
753763
k = enumerator_scan_devices_tags(enumerator);
@@ -810,10 +820,7 @@ int device_enumerator_scan_subsystems(sd_device_enumerator *enumerator) {
810820
enumerator->type == DEVICE_ENUMERATION_TYPE_SUBSYSTEMS)
811821
return 0;
812822

813-
for (size_t i = 0; i < enumerator->n_devices; i++)
814-
sd_device_unref(enumerator->devices[i]);
815-
816-
enumerator->n_devices = 0;
823+
device_enumerator_unref_devices(enumerator);
817824

818825
/* modules */
819826
if (match_subsystem(enumerator, "module")) {

0 commit comments

Comments
 (0)
X Tutup