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");
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);