]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change order read image last frame abort contition
authorBastian Dehn <hhaalo@arcor.de>
Mon, 30 Dec 2024 09:54:18 +0000 (10:54 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 30 Dec 2024 09:54:18 +0000 (10:54 +0100)
src/kds_s2000w_net.c

index 713e644ad9378c403d0acfe85af457789af76a63..fd46d79c288b7bb8e38e14f2a7ad64b13d522ec1 100644 (file)
@@ -214,26 +214,22 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
 
        handler* h = (handler*) handle;
 
-       // max length
        *length = h->image->size - h->read_info->read_size;
        if (*length > max_length)
                *length = max_length;
 
-       // read image
-       if (h->read_info->read_size < h->image->size) {
-               memcpy(data, h->image->data + h->read_info->read_size, *length);
-               h->read_info->read_size += *length;
+       if (h->read_info->read_size >= h->image->size) {
+               free(h->image->data);
+               h->image->data = NULL;
+               h->image->size = 0;
 
-               return SANE_STATUS_GOOD;
+               *length = 0;
+               return SANE_STATUS_EOF;
        }
 
-       // last frame
-       free(h->image->data);
-       h->image->data = NULL;
-       h->image->size = 0;
-
-       *length = 0;
-       return SANE_STATUS_EOF;
+       memcpy(data, h->image->data + h->read_info->read_size, *length);
+       h->read_info->read_size += *length;
+       return SANE_STATUS_GOOD;
 }
 
 SANE_Status _sane_kds_s2000w_net_set_io_mode(SANE_Handle handle,