]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add move image method
authorBastian Dehn <hhaalo@arcor.de>
Mon, 20 Oct 2025 14:50:52 +0000 (16:50 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 20 Oct 2025 14:50:52 +0000 (16:50 +0200)
src/kds_s2000w_handler.c

index 15307bc219c907c33a5c4224fc85c4c89285b241..30ab6b58d24ce392b54b97bebb36477037a219a0 100644 (file)
@@ -91,6 +91,29 @@ uint32_t _kds_s2000w_handler_is_color(const handler_t* h)
        return 0;
 }
 
+blobdata_t* _kds_s2000w_handler_move_image(handler_t* h)
+{
+       blobdata_t* image = (blobdata_t*) h->image;
+       blobdata_t* scanner_image = malloc(sizeof(blobdata_t));
+       if (scanner_image == NULL)
+               return NULL;
+
+       scanner_image->data = malloc(sizeof(char) *  image->size);
+       if (scanner_image->data == NULL) {
+               free(scanner_image);
+               scanner_image = NULL;
+               return NULL;
+       }
+
+       scanner_image->size = image->size;
+       memcpy(scanner_image->data, image->data, image->size);
+       free(image->data);
+       image->data = NULL;
+       image->size = 0;
+
+       return scanner_image;
+}
+
 handler_t* kds_s2000w_handler_init()
 {
        kds_s2000w_debug_printf(ALL, "init handler");
@@ -309,28 +332,15 @@ void kds_s2000w_handler_get_current_metadata(handler_t* h, metadata_t* params)
        image_metadata_t* mdata = malloc(sizeof(image_metadata_t));
        if (mdata == NULL)
                return;
-       blobdata_t* scanner_image = malloc(sizeof(blobdata_t));
+
+       blobdata_t* scanner_image = _kds_s2000w_handler_move_image(h);
        if (scanner_image == NULL) {
                free(mdata);
                mdata = NULL;
                return;
        }
-       blobdata_t* image = (blobdata_t*) h->image;
-       scanner_image->data = malloc(sizeof(char) *  image->size);
-       if (scanner_image->data == NULL) {
-               free(mdata);
-               mdata = NULL;
-               free(scanner_image);
-               scanner_image = NULL;
-               return;
-       }
-
-       scanner_image->size = image->size;
-       memcpy(scanner_image->data, image->data, image->size);
-       free(image->data);
-       image->data = NULL;
-       image->size = 0;
 
+       blobdata_t* image = (blobdata_t*) h->image;
        kds_s2000w_image_converter_metadata_from_scanner_image(scanner_image, mdata);
        kds_s2000w_image_converter_to_pnm(scanner_image, image);
        kds_s2000w_debug_printf_int(DEBUG, "size of pnm image", image->size);