]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change read contitions first read and return
authorBastian Dehn <hhaalo@arcor.de>
Wed, 31 Jul 2024 13:33:27 +0000 (15:33 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 31 Jul 2024 13:33:27 +0000 (15:33 +0200)
src/kds_s2000w_net.c

index 480c63727f53a5fddf7927577364c10c658ffb38..29b5d9dc73f92c4d3d6f559d8683a3bf27f78077 100644 (file)
@@ -224,23 +224,23 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
        if (h->pnm_image->data != NULL && h->read_info->read_size <= 0)
                h->read_info->read_size += _sane_kds_s2000w_net_find_first_data_byte(h->pnm_image);
 
-       // last frame
-       if (h->read_info->read_size >= h->pnm_image->size) {
-               *length = 0;
-               h->scanner_image->size = 0;
-               free(h->scanner_image->data);
-               h->scanner_image->data = NULL;
-               h->pnm_image->size = 0;
-               free(h->pnm_image->data);
-               h->pnm_image->data = NULL;
-
-               return SANE_STATUS_EOF;
+       if (h->read_info->read_size < h->pnm_image->size) {
+               memcpy(data, h->pnm_image->data + h->read_info->read_size, *length);
+               h->read_info->read_size += *length;
+
+               return SANE_STATUS_GOOD;
        }
 
-       memcpy(data, h->pnm_image->data + h->read_info->read_size, *length);
-       h->read_info->read_size += *length;
+       free(h->scanner_image->data);
+       h->scanner_image->data = NULL;
+       h->scanner_image->size = 0;
 
-       return SANE_STATUS_GOOD;
+       free(h->pnm_image->data);
+       h->pnm_image->data = NULL;
+       h->pnm_image->size = 0;
+
+       *length = 0;
+       return SANE_STATUS_EOF;
 }
 
 SANE_Status _sane_kds_s2000w_net_set_io_mode(SANE_Handle handle,