I started trying to look at the shading regression bug with this file and find that HEAD crashes. I ran git bisect and Alex's commit: 86f9af6937e76e10a7adad201b06c337b1a9240b was the cause. Note I am using VS 2008 (MSVC_VER=9) building 32-bit binaries. The command line is: gswin32c -q -r300 -dNOPAUSE -dBATCH tests_private/comparefiles/478-01.ps and also segfaults with: gswin32c -q -r300 -sDEVICE=ppmraw -o x.ppm tests_private/comparefiles/478-01.ps I haven't looked into it much, but it is failing during GC. I suggest considering reversion of the patch until this is found/fixed.
The problem is reproduced on Windows but the file works fine on 32 and 64 bit Linux. We need regression testing on every platform we support.
(In reply to comment #1) > We need regression testing on every platform we support. I agree with Alex's suggestion that we drop support for Windows.
The problem is caused by the fact that on Windows obj_align_mod == 8 but sizeof(ref) == 12. On Linux x86 obj_align_mod == 4, Linux AMD64 sizeof(ref)==16 We need either - don't require sizeof(ref) % obj_align_mod == 0 - always use 16-byte ref's or pad the ref when obj_align_mod == 8 - don't set obj_align_mod == 8 on x86 or ppc32
Reinstate big references. Make them compatible with 8-byte alignment on 32-bit Windows by adding a dummy uint64_t member to the union that increases the sizeof(ref) to 16. http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2740bef445c51680d831ec40753436291f01760a