diff options
author | Robin Watts <robin.watts@artifex.com> | 2012-02-15 19:03:56 +0000 |
---|---|---|
committer | Chris Liddell <chris.liddell@artifex.com> | 2012-03-15 11:54:23 +0000 |
commit | a0a2a8d7a4e30f4e484c982a3a57cf6b36c804b9 (patch) | |
tree | f6ee4480a6f353dda8830f88f53e16c6c35fe5c4 | |
parent | e786b96b66bdf71b86875fc3aa3e8ad056c4534a (diff) |
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.
-rw-r--r-- | gs/base/gdevp14.c | 4 | ||||
-rw-r--r-- | gs/base/gdevpsd.c | 4 | ||||
-rw-r--r-- | gs/base/gdevtsep.c | 4 |
3 files changed, 11 insertions, 1 deletions
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 |