diff -up espgs-8.15.2/src/gsiparam.h.pdf-loop espgs-8.15.2/src/gsiparam.h --- espgs-8.15.2/src/gsiparam.h.pdf-loop 2005-01-19 04:08:41.000000000 +0000 +++ espgs-8.15.2/src/gsiparam.h 2009-03-31 10:08:27.000000000 +0100 @@ -166,15 +166,22 @@ typedef struct gs_color_space_s gs_color */\ gs_image_format_t format;\ /*\ - * Define the source color space (must be NULL for masks).\ - */\ - const gs_color_space *ColorSpace;\ - /*\ * Define whether to use the drawing color as the\ * "texture" for RasterOp. For more information,\ * see the discussion of RasterOp in Language.htm.\ */\ - bool CombineWithColor + bool CombineWithColor;\ + /*\ + * Define the source color space (must be NULL for masks).\ + *\ + * Make the pointer the last element of the structure.\ + * Otherwise, the padding at the end overwrites the 1st\ + * member of the subclass, when the base structure is assigned\ + * to the subclass structure. Bugs 613909, 688725\ + */\ + const gs_color_space *ColorSpace + + typedef struct gs_pixel_image_s { gs_pixel_image_common; } gs_pixel_image_t; diff -up espgs-8.15.2/src/gxhintn.h.pdf-loop espgs-8.15.2/src/gxhintn.h --- espgs-8.15.2/src/gxhintn.h.pdf-loop 2005-01-19 04:08:41.000000000 +0000 +++ espgs-8.15.2/src/gxhintn.h 2009-03-31 10:08:27.000000000 +0100 @@ -102,7 +102,7 @@ typedef struct t1_hinter_s { fraction_matrix ctmf; fraction_matrix ctmi; unsigned int g2o_fraction_bits; - unsigned int max_import_coord; + unsigned long max_import_coord; int32 g2o_fraction; t1_glyph_space_coord orig_gx, orig_gy; /* glyph origin in glyph space */ t1_glyph_space_coord subglyph_orig_gx, subglyph_orig_gy; /* glyph origin in glyph space */ diff -up espgs-8.15.2/src/gximage3.c.pdf-loop espgs-8.15.2/src/gximage3.c --- espgs-8.15.2/src/gximage3.c.pdf-loop 2005-03-18 03:27:11.000000000 +0000 +++ espgs-8.15.2/src/gximage3.c 2009-03-31 10:08:27.000000000 +0100 @@ -370,16 +370,10 @@ gx_begin_image3_generic(gx_device * dev, } gs_image_t_init(&i_pixel, pim->ColorSpace); { - const bool ImageMask = i_pixel.ImageMask; - const bool adjust = i_pixel.adjust; const gx_image_type_t *type1 = i_pixel.type; - const gs_image_alpha_t Alpha = i_pixel.Alpha; - memcpy((gs_pixel_image_t *)&i_pixel, (const gs_pixel_image_t *)pim, sizeof(gs_pixel_image_t)); - i_pixel.ImageMask = ImageMask; - i_pixel.adjust = adjust; + *(gs_pixel_image_t *)&i_pixel = *(const gs_pixel_image_t *)pim; i_pixel.type = type1; - i_pixel.Alpha = Alpha; } code = make_mcde(dev, pis, pmat, (const gs_image_common_t *)&i_pixel, prect, pdcolor, pcpath, mem, &penum->pixel_info,