diff options
author | Michael Vrhel <michael.vrhel@artifex.com> | 2016-12-29 14:00:21 -0800 |
---|---|---|
committer | Michael Vrhel <michael.vrhel@artifex.com> | 2016-12-29 14:00:21 -0800 |
commit | 90fd0c7ca3efc1ddff64a86f4104b13b3ac969eb (patch) | |
tree | 08ec0c61351e4536a6476ba41d4c42140e92d9f8 | |
parent | d621292fb2c8157d9899dcd83fd04dd250e30fe4 (diff) |
Bug 697456. Dont create new ctx when pdf14 device reenabled
This bug had yet another weird case where the user created a
file that pushed the pdf14 device twice. We were in that case,
creating a new ctx and blowing away the original one with out
proper clean up. To avoid, only create a new one when we need it.
-rw-r--r-- | base/gdevp14.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/base/gdevp14.c b/base/gdevp14.c index fd56ec975..f19318ee7 100644 --- a/base/gdevp14.c +++ b/base/gdevp14.c @@ -1669,8 +1669,10 @@ pdf14_open(gx_device *dev) rect.p.y = 0; rect.q.x = dev->width; rect.q.y = dev->height; - pdev->ctx = pdf14_ctx_new(&rect, dev->color_info.num_components, - pdev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, dev); + /* If we are reenabling the device dont create a new ctx. Bug 697456 */ + if (pdev->ctx == NULL) + pdev->ctx = pdf14_ctx_new(&rect, dev->color_info.num_components, + pdev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, dev); if (pdev->ctx == NULL) return_error(gs_error_VMerror); pdev->free_devicen = true; |