components/ghostscript/patches/7201968.patch
author Sonam Gupta <sonam.x.gupta@oracle.com>
Tue, 09 Oct 2012 02:23:56 -0700
changeset 1010 7dd8255e425e
permissions -rw-r--r--
7201968 Cannot convert some PDF files to postscript format
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1010
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     1
This is a known bug with ghostscript-9.00
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     2
http://bugs.ghostscript.com/show_bug.cgi?id=691619
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     3
======================================================================
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     4
--- ghostscript-9.00/base/gximag3x.c	Tue Aug 10 09:20:19 2010
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     5
+++ ghostscript-9.00/base/gximag3x.c	Mon Oct  8 03:56:41 2012
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     6
@@ -546,6 +546,12 @@
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     7
 	return_error(gs_error_VMerror);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     8
     gx_device_bbox_init(bbdev, dev, mem);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
     9
     gx_device_bbox_fwd_open_close(bbdev, false);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    10
+
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    11
+    if (dev->device_icc_profile) {
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    12
+        bbdev->device_icc_profile = dev->device_icc_profile;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    13
+        rc_increment(bbdev->device_icc_profile);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    14
+    }
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    15
+
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    16
     code = dev_proc(bbdev, begin_typed_image)
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    17
 	((gx_device *)bbdev, pis, pmat, pic, prect, pdcolor, pcpath, mem,
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    18
 	 pinfo);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    19
@@ -854,6 +860,11 @@
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    20
     gx_device *pcdev = penum->pcdev;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    21
     int pcode = gx_image_end(penum->pixel.info, draw_last);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    22
 
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    23
+    if (pcdev->device_icc_profile) {
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    24
+        rc_decrement(pcdev->device_icc_profile, "gx_image3x_end_image");
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    25
+        pcdev->device_icc_profile = NULL;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    26
+    }
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    27
+
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    28
     gs_closedevice(pcdev);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    29
     if (mdev0)
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    30
 	gs_closedevice(mdev0);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    31
--- ghostscript-9.00/base/gslib.c	Tue May  4 11:47:12 2010
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    32
+++ ghostscript-9.00/base/gslib.c	Mon Oct  8 03:57:33 2012
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    33
@@ -178,6 +178,11 @@
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    34
 	ht.spot_function = odsf;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    35
 	gs_setscreen(pgs, &ht);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    36
     }
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    37
+
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    38
+    code = gsicc_init_device_profile(pgs, dev);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    39
+    if (code < 0)
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    40
+        return code;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    41
+
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    42
     /* gsave and grestore (among other places) assume that */
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    43
     /* there are at least 2 gstates on the graphics stack. */
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    44
     /* Ensure that now. */
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    45
@@ -197,6 +202,11 @@
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    46
 	dprintf1("**** Test returned code = %d.\n", code);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    47
     dputs("Done.  Press <enter> to exit.");
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    48
     fgetc(mem->gs_lib_ctx->fstdin);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    49
+    if (dev->device_icc_profile) {
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    50
+        rc_decrement(dev->device_icc_profile, "gslib main");
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    51
+        dev->device_icc_profile = NULL;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    52
+    }
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    53
+
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    54
     gs_lib_finit(0, 0, mem);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    55
     return 0;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    56
 #undef mem
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    57
--- ghostscript-9.00/base/gdevvec.c	Thu Dec  3 16:33:04 2009
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    58
+++ ghostscript-9.00/base/gdevvec.c	Mon Oct  8 03:34:56 2012
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    59
@@ -326,6 +326,11 @@
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    60
 		     dev_proc(vdev, get_initial_matrix));
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    61
 	(*dev_proc(vdev->bbox_device, open_device))
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    62
 	    ((gx_device *) vdev->bbox_device);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    63
+
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    64
+	if (vdev->device_icc_profile) {
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    65
+	    vdev->bbox_device->device_icc_profile = vdev->device_icc_profile;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    66
+	    rc_increment(vdev->bbox_device->device_icc_profile);
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    67
+	}
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    68
     }
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    69
     return 0;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    70
 }
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    71
@@ -802,6 +807,11 @@
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    72
     FILE *f = vdev->file;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    73
     int err;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    74
 
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    75
+    if (vdev->bbox_device && vdev->bbox_device->device_icc_profile) {
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    76
+        rc_decrement(vdev->bbox_device->device_icc_profile, "gdev_vector_close_file");
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    77
+        vdev->bbox_device->device_icc_profile = NULL;
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    78
+    }
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    79
+
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    80
     gs_free_object(vdev->v_memory, vdev->bbox_device,
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    81
 		   "vector_close(bbox_device)");
7dd8255e425e 7201968 Cannot convert some PDF files to postscript format
Sonam Gupta <sonam.x.gupta@oracle.com>
parents:
diff changeset
    82
     vdev->bbox_device = 0;