From a0a2a8d7a4e30f4e484c982a3a57cf6b36c804b9 Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Wed, 15 Feb 2012 19:03:56 +0000 Subject: Update garbage collection to cope with pdf14_compressed_color_list. A second list of compressed colors was recently added to the gdevn_params structure, but this wasn't added to the garbage collection routines. Fixed here. --- gs/base/gdevp14.c | 4 +++- gs/base/gdevpsd.c | 4 ++++ gs/base/gdevtsep.c | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gs/base/gdevp14.c b/gs/base/gdevp14.c index 20185424f..06b148a56 100644 --- a/gs/base/gdevp14.c +++ b/gs/base/gdevp14.c @@ -459,7 +459,7 @@ const pdf14_device gs_pdf14_custom_device = { static ENUM_PTRS_WITH(pdf14_device_enum_ptrs, pdf14_device *pdev) { - index -= 5; + index -= 6; if (index < pdev->devn_params.separations.num_separations) ENUM_RETURN(pdev->devn_params.separations.names[index].data); index -= pdev->devn_params.separations.num_separations; @@ -472,6 +472,7 @@ case 1: return ENUM_OBJ(pdev->trans_group_parent_cmap_procs); case 2: return ENUM_OBJ(pdev->smaskcolor); case 3: ENUM_RETURN(gx_device_enum_ptr(pdev->target)); case 4: ENUM_RETURN(pdev->devn_params.compressed_color_list); +case 5: ENUM_RETURN(pdev->devn_params.pdf14_compressed_color_list); ENUM_PTRS_END static RELOC_PTRS_WITH(pdf14_device_reloc_ptrs, pdf14_device *pdev) @@ -484,6 +485,7 @@ static RELOC_PTRS_WITH(pdf14_device_reloc_ptrs, pdf14_device *pdev) } } RELOC_PTR(pdf14_device, devn_params.compressed_color_list); + RELOC_PTR(pdf14_device, devn_params.pdf14_compressed_color_list); RELOC_VAR(pdev->ctx); RELOC_VAR(pdev->smaskcolor); RELOC_VAR(pdev->trans_group_parent_cmap_procs); diff --git a/gs/base/gdevpsd.c b/gs/base/gdevpsd.c index 2741b4365..ffa945745 100644 --- a/gs/base/gdevpsd.c +++ b/gs/base/gdevpsd.c @@ -124,6 +124,9 @@ ENUM_PTRS_WITH(psd_device_enum_ptrs, psd_device *pdev) if (index == 0) ENUM_RETURN(pdev->devn_params.compressed_color_list); index--; + if (index == 0) + ENUM_RETURN(pdev->devn_params.pdf14_compressed_color_list); + index--; if (index < pdev->devn_params.separations.num_separations) ENUM_RETURN(pdev->devn_params.separations.names[index].data); ENUM_PREFIX(st_device_printer, @@ -143,6 +146,7 @@ static RELOC_PTRS_WITH(psd_device_reloc_ptrs, psd_device *pdev) } } RELOC_PTR(psd_device, devn_params.compressed_color_list); + RELOC_PTR(psd_device, devn_params.pdf14_compressed_color_list); } RELOC_PTRS_END diff --git a/gs/base/gdevtsep.c b/gs/base/gdevtsep.c index c62d9cfc6..6da007435 100644 --- a/gs/base/gdevtsep.c +++ b/gs/base/gdevtsep.c @@ -440,6 +440,9 @@ ENUM_PTRS_WITH(tiffsep_device_enum_ptrs, tiffsep_device *pdev) if (index == 0) ENUM_RETURN(pdev->devn_params.compressed_color_list); index--; + if (index == 0) + ENUM_RETURN(pdev->devn_params.pdf14_compressed_color_list); + index--; if (index < pdev->devn_params.separations.num_separations) ENUM_RETURN(pdev->devn_params.separations.names[index].data); ENUM_PREFIX(st_device_printer, @@ -459,6 +462,7 @@ static RELOC_PTRS_WITH(tiffsep_device_reloc_ptrs, tiffsep_device *pdev) } } RELOC_PTR(tiffsep_device, devn_params.compressed_color_list); + RELOC_PTR(tiffsep_device, devn_params.pdf14_compressed_color_list); } RELOC_PTRS_END -- cgit v1.2.3