summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2012-02-15 19:03:56 +0000
committerChris Liddell <chris.liddell@artifex.com>2012-03-15 11:54:23 +0000
commita0a2a8d7a4e30f4e484c982a3a57cf6b36c804b9 (patch)
treef6ee4480a6f353dda8830f88f53e16c6c35fe5c4
parente786b96b66bdf71b86875fc3aa3e8ad056c4534a (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.c4
-rw-r--r--gs/base/gdevpsd.c4
-rw-r--r--gs/base/gdevtsep.c4
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