From: Bastian Dehn Date: Sat, 27 Jan 2024 08:04:04 +0000 (+0100) Subject: change allocate option descriptor X-Git-Tag: v1.0.0^2~455 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=98a504660df8f92f07f97608d4823e4391b1347f;p=sane-kds-s2000w-net.git change allocate option descriptor --- diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 4aad460..dd8f938 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -13,12 +13,27 @@ SANE_Device* device_info = NULL; SANE_Parameters* parameter = NULL; option_descriptors option_descriptor_array; -SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback authorize) +void _init_option_descriptor_array() { - *version_code = SANE_VERSION_CODE(1, 0, 0); option_descriptor_array.option_descriptors = malloc(sizeof(SANE_Option_Descriptor**)); option_descriptor_array.option_descriptors[0] = NULL; option_descriptor_array.length = 0; +} + +void _free_option_descriptor_array() +{ + for (int i = 0; i < option_descriptor_array.length; i++) { + free(option_descriptor_array.option_descriptors[i]); + option_descriptor_array.option_descriptors[i] = NULL; + } + free(option_descriptor_array.option_descriptors); + option_descriptor_array.option_descriptors = NULL; +} + +SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback authorize) +{ + *version_code = SANE_VERSION_CODE(1, 0, 0); + _init_option_descriptor_array(); device_info = malloc(sizeof(SANE_Device)); parameter = malloc(sizeof(SANE_Parameters)); return SANE_STATUS_GOOD; @@ -33,12 +48,7 @@ void _sane_kds_s2000w_net_exit(void) device_info = NULL; free(parameter); parameter = NULL; - for (int i = 0; i < option_descriptor_array.length; i++) { - free(option_descriptor_array.option_descriptors[i]); - option_descriptor_array.option_descriptors[i] = NULL; - } - free(option_descriptor_array.option_descriptors); - option_descriptor_array.option_descriptors = NULL; + _free_option_descriptor_array(); } SANE_Status _sane_kds_s2000w_net_get_devices(SANE_Device*** device_list,