]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change device list seperate pointer with free
authorBastian Dehn <hhaalo@arcor.de>
Tue, 14 Jan 2025 19:20:01 +0000 (20:20 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 14 Jan 2025 19:30:13 +0000 (20:30 +0100)
src/kds_s2000w_net.c
tests/kds_s2000w_net_tests.c

index c746a146aaa6a929926bc716c27c7fe76dc1d842..9cb1b53c6de2010a8808bbfc56153c9e70c773d7 100644 (file)
@@ -11,6 +11,7 @@
 #define TYPE "sheetfed scanner"
 
 SANE_Device** device_info_list = NULL;
+SANE_Device* device_info = NULL;
 
 SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback authorize)
 {
@@ -25,6 +26,8 @@ void _sane_kds_s2000w_net_exit(void)
 {
        debug_printf(ALL, "sane_kds_s2000w_net_exit");
 
+       free(device_info);
+       device_info = NULL;
        free(device_info_list);
        device_info_list = NULL;
 }
@@ -38,11 +41,12 @@ SANE_Status _sane_kds_s2000w_net_get_devices(SANE_Device*** device_list,
                return SANE_STATUS_NO_MEM;
 
        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 = malloc(sizeof(SANE_Device));
+       device_info->name = NAME;
+       device_info->vendor = VENDOR;
+       device_info->model = MODEL;
+       device_info->type = TYPE;
+       device_info_list[0] = device_info;
        device_info_list[1] = NULL;
        *device_list = device_info_list;
 
index e0b3f1b228ed064bd3e7a364cfd82b75a545d0e2..769069d20a1087e706f703dc4ef98e0e1dc04eb6 100644 (file)
@@ -19,10 +19,6 @@ void kds_s2000w_net_get_devices()
        assert_string_equal(device_list[0][0]->type, "sheetfed scanner");
        assert_null(device_list[0][1]);
 
-       free(device_list[0][0]);
-       device_list[0][0] = NULL;
-       free(device_list[0]);
-       device_list[0] = NULL;
        free(device_list);
        device_list = NULL;
 }