[gs-cvs] rev 8550 - trunk/gs/src

leonardo at ghostscript.com leonardo at ghostscript.com
Tue Feb 26 16:08:22 PST 2008


Author: leonardo
Date: 2008-02-26 16:08:22 -0800 (Tue, 26 Feb 2008)
New Revision: 8550

Modified:
   trunk/gs/src/gdevpdfg.c
   trunk/gs/src/gsistate.c
   trunk/gs/src/gxistate.h
   trunk/gs/src/lib.mak
Log:
Fix (clist interpreter) : Improve transparency performance, step 2.

DETAILS :

This is a preparation for fixing bug 689708 "Long processing time of PDF file"
The last patch appears incomplete due to a missed dependence in makefile.
Now we see the mask pointer was used but it was always NULL.

EXPECTED DIFFERENCES :

None.      


Modified: trunk/gs/src/gdevpdfg.c
===================================================================
--- trunk/gs/src/gdevpdfg.c	2008-02-26 23:14:40 UTC (rev 8549)
+++ trunk/gs/src/gdevpdfg.c	2008-02-27 00:08:22 UTC (rev 8550)
@@ -1417,8 +1417,8 @@
 	 * If the graphics state calls for any transparency functions,
 	 * we can't represent them, so return a rangecheck.
 	 */
-	if (pis->opacity.alpha != 1 || pis->opacity.mask != 0 ||
-	    pis->shape.alpha != 1 || pis->shape.mask != 0 ||
+	if (pis->opacity.alpha != 1 || 
+	    pis->shape.alpha != 1 || 
 	    pis->transparency_stack != 0
 	    )
 	    return_error(gs_error_rangecheck);

Modified: trunk/gs/src/gsistate.c
===================================================================
--- trunk/gs/src/gsistate.c	2008-02-26 23:14:40 UTC (rev 8549)
+++ trunk/gs/src/gsistate.c	2008-02-27 00:08:22 UTC (rev 8550)
@@ -62,10 +62,8 @@
 ENUM_PTRS_BEGIN(imager_state_enum_ptrs)
     ENUM_SUPER(gs_imager_state, st_line_params, line_params, st_imager_state_num_ptrs - st_line_params_num_ptrs);
     ENUM_PTR(0, gs_imager_state, client_data);
-    ENUM_PTR(1, gs_imager_state, opacity.mask);
-    ENUM_PTR(2, gs_imager_state, shape.mask);
-    ENUM_PTR(3, gs_imager_state, transparency_stack);
-#define E1(i,elt) ENUM_PTR(i+4,gs_imager_state,elt);
+    ENUM_PTR(1, gs_imager_state, transparency_stack);
+#define E1(i,elt) ENUM_PTR(i+2,gs_imager_state,elt);
     gs_cr_state_do_ptrs(E1)
 #undef E1
 ENUM_PTRS_END
@@ -73,8 +71,6 @@
 {
     RELOC_SUPER(gs_imager_state, st_line_params, line_params);
     RELOC_PTR(gs_imager_state, client_data);
-    RELOC_PTR(gs_imager_state, opacity.mask);
-    RELOC_PTR(gs_imager_state, shape.mask);
     RELOC_PTR(gs_imager_state, transparency_stack);
 #define R1(i,elt) RELOC_PTR(gs_imager_state,elt);
     gs_cr_state_do_ptrs(R1)
@@ -96,8 +92,6 @@
     int i;
     pis->memory = mem;
     pis->client_data = 0;
-    pis->opacity.mask = 0;
-    pis->shape.mask = 0;
     pis->transparency_stack = 0;
     /* Color rendering state */
     pis->halftone = 0;
@@ -157,8 +151,6 @@
 void
 gs_imager_state_copied(gs_imager_state * pis)
 {
-    rc_increment(pis->opacity.mask);
-    rc_increment(pis->shape.mask);
     rc_increment(pis->halftone);
     rc_increment(pis->dev_ht);
     rc_increment(pis->cie_render);
@@ -192,8 +184,6 @@
     RCCOPY(cie_render);
     RCCOPY(dev_ht);
     RCCOPY(halftone);
-    RCCOPY(shape.mask);
-    RCCOPY(opacity.mask);
     RCCOPY(devicergb_cs);
     RCCOPY(devicecmyk_cs);
 #undef RCCOPY
@@ -226,8 +216,6 @@
     }
     RCDECR(dev_ht);
     RCDECR(halftone);
-    RCDECR(shape.mask);
-    RCDECR(opacity.mask);
     RCDECR(devicergb_cs);
     RCDECR(devicecmyk_cs);
 #undef RCDECR

Modified: trunk/gs/src/gxistate.h
===================================================================
--- trunk/gs/src/gxistate.h	2008-02-26 23:14:40 UTC (rev 8549)
+++ trunk/gs/src/gxistate.h	2008-02-27 00:08:22 UTC (rev 8550)
@@ -272,7 +272,7 @@
    { (float)(scale), 0.0, 0.0, (float)(-(scale)), 0.0, 0.0 },\
   false, {0, 0}, {0, 0}, false, \
   lop_default, gx_max_color_value, BLEND_MODE_Compatible,\
-  { 1.0, 0 }, { 1.0, 0 }, 0, 0/*false*/, 0, 0, 0/*false*/, 0, 0, 1.0,  \
+  { 1.0 }, { 1.0 }, 0, 0/*false*/, 0, 0, 0/*false*/, 0, 0, 1.0,  \
    { fixed_half, fixed_half }, 0/*false*/, 0/*false*/, 0/*false*/, 1.0,\
   1, INIT_CUSTOM_COLOR_PTR	/* 'Custom color' callback pointer */  \
   gx_default_get_cmap_procs

Modified: trunk/gs/src/lib.mak
===================================================================
--- trunk/gs/src/lib.mak	2008-02-26 23:14:40 UTC (rev 8549)
+++ trunk/gs/src/lib.mak	2008-02-27 00:08:22 UTC (rev 8550)
@@ -429,7 +429,7 @@
 gxcmap_h=$(GLSRC)gxcmap.h $(gscsel_h) $(gxcindex_h) $(gxcvalue_h) $(gxfmap_h)
 gxistate_h=$(GLSRC)gxistate.h\
  $(gscsel_h) $(gsrefct_h) $(gsropt_h) $(gstparam_h) $(gxcvalue_h) $(gxcmap_h)\
- $(gxfixed_h) $(gxline_h) $(gxmatrix_h) $(gxtmap_h) $(gscspace_h) $(gsnamecl_h)
+ $(gxfixed_h) $(gxline_h) $(gxmatrix_h) $(gxtmap_h) $(gscspace_h) $(gstrans_h) $(gsnamecl_h)
 gxclist_h=$(GLSRC)gxclist.h $(gscspace_h)\
  $(gxband_h) $(gxbcache_h) $(gxclio_h) $(gxdevbuf_h) $(gxistate_h)\
  $(gxrplane_h)



More information about the gs-cvs mailing list