]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
free device info list by exit
authorBastian Dehn <hhaalo@arcor.de>
Sun, 5 Jan 2025 15:07:23 +0000 (16:07 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 5 Jan 2025 15:07:23 +0000 (16:07 +0100)
src/kds_s2000w_net.c

index 9e305528457893db0dccd72de98579bd93877a73..5ab64865d1dba4c5e3ba761a6842ff6bb632f260 100644 (file)
@@ -14,6 +14,8 @@
 #define MODEL "Kodak Alaris s2000w series"
 #define TYPE "sheetfed scanner"
 
+SANE_Device** device_info_list = NULL;
+
 SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback authorize)
 {
        debug_printf(ALL, "sane_kds_s2000w_net_init");
@@ -26,6 +28,11 @@ SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback
 void _sane_kds_s2000w_net_exit(void)
 {
        debug_printf(ALL, "sane_kds_s2000w_net_exit");
+
+       free(device_info_list[0]);
+       device_info_list[0] = NULL;
+       free(device_info_list);
+       device_info_list = NULL;
 }
 
 SANE_Status _sane_kds_s2000w_net_get_devices(SANE_Device*** device_list,
@@ -36,13 +43,14 @@ SANE_Status _sane_kds_s2000w_net_get_devices(SANE_Device*** device_list,
        if (local_only)
                return SANE_STATUS_NO_MEM;
 
-       *device_list = malloc(sizeof(SANE_Device*) * 2);
-       device_list[0][0] = malloc(sizeof(SANE_Device));
-       device_list[0][0]->name = NAME;
-       device_list[0][0]->vendor = VENDOR;
-       device_list[0][0]->model = MODEL;
-       device_list[0][0]->type = TYPE;
-       device_list[0][1] = NULL;
+       device_info_list = malloc(sizeof(SANE_Device*) * 2);
+       device_info_list[0] = malloc(sizeof(SANE_Device));
+       device_info_list[0]->name = NAME;
+       device_info_list[0]->vendor = VENDOR;
+       device_info_list[0]->model = MODEL;
+       device_info_list[0]->type = TYPE;
+       device_info_list[1] = NULL;
+       *device_list = device_info_list;
 
        return SANE_STATUS_GOOD;
 }