#include "kds_s2000w_handler.h"
#include "kds_s2000w_debug.h"
+SANE_Device** device_info_list = NULL;
+
+void _free_device_info_list(SANE_Device** device_info_list)
+{
+ free(device_info_list[0]);
+ device_info_list[0] = NULL;
+ free(device_info_list[1]);
+ device_info_list[1] = NULL;
+ free(device_info_list);
+ 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");
void _sane_kds_s2000w_net_exit(void)
{
+ _free_device_info_list(device_info_list);
debug_printf(ALL, "sane_kds_s2000w_net_exit");
}
if (local_only)
return SANE_STATUS_NO_MEM;
- SANE_Device** own_device_list = malloc(sizeof(SANE_Device*) * 2);
- SANE_Device* device_info = malloc(sizeof(SANE_Device));
- device_info->name = "kds_s2000w_net";
- device_info->vendor = "Kodak";
- device_info->model = "Kodak Alaris s2000w series";
- device_info->type = "sheetfed scanner";
- own_device_list[0] = device_info;
- own_device_list[1] = NULL;
- *device_list = own_device_list;
+ device_info_list = malloc(sizeof(SANE_Device*) * 2);
+ device_info_list[0] = malloc(sizeof(SANE_Device));
+ device_info_list[0]->name = "kds_s2000w_net";
+ device_info_list[0]->vendor = "Kodak";
+ device_info_list[0]->model = "Kodak Alaris s2000w series";
+ device_info_list[0]->type = "sheetfed scanner";
+ device_info_list[1] = NULL;
+ *device_list = device_info_list;
return SANE_STATUS_GOOD;
}