diff options
Diffstat (limited to 'devices/gdevtifs.c')
-rw-r--r-- | devices/gdevtifs.c | 54 |
1 files changed, 9 insertions, 45 deletions
diff --git a/devices/gdevtifs.c b/devices/gdevtifs.c index b937d0e3..9c629afa 100644 --- a/devices/gdevtifs.c +++ b/devices/gdevtifs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2021 Artifex Software, Inc. +/* Copyright (C) 2001-2022 Artifex Software, Inc. All Rights Reserved. This software is provided AS-IS with no warranty, either express or @@ -76,12 +76,9 @@ tiff_close(gx_device * pdev) if (tfdev->tif) TIFFClose(tfdev->tif); - if (tfdev->icclink != NULL) - { - tfdev->icclink->procs.free_link(tfdev->icclink); - gsicc_free_link_dev(pdev->memory, tfdev->icclink); - tfdev->icclink = NULL; - } + gsicc_free_link_dev(tfdev->icclink); + tfdev->icclink = NULL; + return gdev_prn_close(pdev); } @@ -298,8 +295,6 @@ int gdev_tiff_begin_page(gx_device_tiff *tfdev, gp_file *file) { gx_device_printer *const pdev = (gx_device_printer *)tfdev; - cmm_dev_profile_t *profile_struct; - gsicc_rendering_param_t rendering_params; int code; if (gdev_prn_file_is_new(pdev)) { @@ -308,39 +303,10 @@ int gdev_tiff_begin_page(gx_device_tiff *tfdev, if (!tfdev->tif) return_error(gs_error_invalidfileaccess); /* Set up the icc link settings at this time */ - code = dev_proc(pdev, get_profile)((gx_device *)pdev, &profile_struct); + code = gx_downscaler_create_post_render_link((gx_device *)pdev, + &tfdev->icclink); if (code < 0) - return_error(gs_error_undefined); - if (profile_struct->postren_profile != NULL) { - rendering_params.black_point_comp = gsBLACKPTCOMP_ON; - rendering_params.graphics_type_tag = GS_UNKNOWN_TAG; - rendering_params.override_icc = false; - rendering_params.preserve_black = gsBLACKPRESERVE_OFF; - rendering_params.rendering_intent = gsRELATIVECOLORIMETRIC; - rendering_params.cmm = gsCMM_DEFAULT; - if (profile_struct->oi_profile != NULL) { - tfdev->icclink = gsicc_alloc_link_dev(pdev->memory, - profile_struct->oi_profile, profile_struct->postren_profile, - &rendering_params); - } else if (profile_struct->link_profile != NULL) { - tfdev->icclink = gsicc_alloc_link_dev(pdev->memory, - profile_struct->link_profile, profile_struct->postren_profile, - &rendering_params); - } else { - tfdev->icclink = gsicc_alloc_link_dev(pdev->memory, - profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE], - profile_struct->postren_profile, &rendering_params); - } - if (tfdev->icclink == NULL) { - return_error(gs_error_VMerror); - } - /* If it is identity, release it now and set link to NULL */ - if (tfdev->icclink->is_identity) { - tfdev->icclink->procs.free_link(tfdev->icclink); - gsicc_free_link_dev(pdev->memory, tfdev->icclink); - tfdev->icclink = NULL; - } - } + return code; } return tiff_set_fields_for_printer(pdev, tfdev->tif, tfdev->downscale.downscale_factor, @@ -400,7 +366,7 @@ int tiff_set_fields_for_printer(gx_device_printer *pdev, strncpy(softwareValue, gs_product, maxSoftware); softwareValue[maxSoftware - 1] = 0; - gs_sprintf(revs, " %d.%2d.%d", major, minor, patch); + gs_snprintf(revs, sizeof(revs), " %d.%2d.%d", major, minor, patch); strncat(softwareValue, revs, maxSoftware - strlen(softwareValue) - 1); @@ -418,7 +384,7 @@ int tiff_set_fields_for_printer(gx_device_printer *pdev, time(&t); tms = *localtime(&t); #endif - gs_sprintf(dateTimeValue, "%04d:%02d:%02d %02d:%02d:%02d", + gs_snprintf(dateTimeValue, sizeof(dateTimeValue), "%04d:%02d:%02d %02d:%02d:%02d", tms.tm_year + 1900, tms.tm_mon + 1, tms.tm_mday, tms.tm_hour, tms.tm_min, tms.tm_sec); @@ -438,8 +404,6 @@ int tiff_set_fields_for_printer(gx_device_printer *pdev, if (pdev->icc_struct->postren_profile != NULL) icc_profile = pdev->icc_struct->postren_profile; - else if (pdev->icc_struct->oi_profile != NULL) - icc_profile = pdev->icc_struct->oi_profile; else icc_profile = pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]; |