X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Fhwdriver.c;h=d11bcccc44712c0b02bc820a7d4d7c1f11db0162;hp=a9561d3e78953f96c57537291c3a93163ffe3a64;hb=1a8639164e4e44a43fe1558e30823606f7b607b3;hpb=8852eb75d14730484e66f9e0ff2b177934615a6f diff --git a/src/hwdriver.c b/src/hwdriver.c index a9561d3e..d11bcccc 100644 --- a/src/hwdriver.c +++ b/src/hwdriver.c @@ -269,14 +269,15 @@ SR_API struct sr_dev_driver **sr_driver_list(void) struct sr_dev_driver ***lists, **drivers; GArray *array; - if (!combined_list) { - array = g_array_new(TRUE, FALSE, sizeof(struct sr_dev_driver *)); - for (lists = drivers_lists; *lists; lists++) - for (drivers = *lists; *drivers; drivers++) - g_array_append_val(array, *drivers); - combined_list = (struct sr_dev_driver **) array->data; - g_array_free(array, FALSE); - } + if (combined_list) + return combined_list; + + array = g_array_new(TRUE, FALSE, sizeof(struct sr_dev_driver *)); + for (lists = drivers_lists; *lists; lists++) + for (drivers = *lists; *drivers; drivers++) + g_array_append_val(array, *drivers); + combined_list = (struct sr_dev_driver **)array->data; + g_array_free(array, FALSE); return combined_list; }