[poppler] Bugfix proposal for Shading Type 6 and 7

Albert Astals Cid aacid at kde.org
Wed Oct 13 11:34:50 PDT 2010


A Divendres, 8 d'octubre de 2010, Christian Feuersaenger va escriure:
> Am 07.10.2010 23:17, schrieb Albert Astals Cid:
> > A Divendres, 1 d'octubre de 2010, Christian Feuersaenger va escriure:
> >> Am 13.08.2010 23:43, schrieb Albert Astals Cid:
> >>> A Divendres, 30 de juliol de 2010, Albert Astals Cid va escriure:
> >>>> A Dimarts, 27 de juliol de 2010, Christian Feuersaenger va escriure:
> >>>>> Dear Albert,
> >>>>> 
> >>>>> thank you for your time to perform the regression tests!
> >>>>> 
> >>>>> I have fixed the bug; it was a data type problem.
> >>>>> 
> >>>>> Attached you find the fixed version.
> >>>>> 
> >>>>> The file
> >>>>> bugfix_shadingtype4567_incremental.patch
> >>>>> is relative to the version you used for the regression tests.
> >>>>> 
> >>>>> The file
> >>>>> bugfix_shadingtype4567_poppler0.14.patch
> >>>>> is relative to poppler-0.14.0-3-gb2427d0 .
> >>>>> 
> >>>>> Thank you for considering my contributions.
> >>>> 
> >>>> I've ran the regression test with the Splash outputdev and all looks
> >>>> ok, will have to run it over the cairo and ps outputdevs before
> >>>> committing, though it'll take a while since next week i'm going to be
> >>>> away on holidays.
> >>> 
> >>> Bad news, this patch produces a regression in pdftops when running over
> >>> the attached file, that is, the unpatched version creates a ps file
> >>> that is valid (gs will open it) and the patched version creates a ps
> >>> file that "crashes" gs.
> >>> 
> >>> Do you think you can have a look?
> >>> 
> >>> Albert
> >> 
> >> Dear Albert,
> >> 
> >> I am having difficulties to reproduce the problem. Here is what I did:
> >> 
> >> 1. try to view bug157704.pdf with the standard gs
> >> -->  crash (see below)
> >> 2. call pdftops (using system's version of libpoppler) and open gs on
> >> the result
> >> -->  works without errors (see below)
> >> 3. call pdftops using the patched libpoppler and open gs on the result
> >> -->  works without errors
> >> 4. call pdftops of poppler git version of 0.14 without my patch (I have
> >> not yet pulled the new version) and open gs on the result
> >> -->  works without errors
> >> 
> >> Do you have more detailed information about the crash? I fear I am
> >> unable to do anything here...
> > 
> > Wops, works for me now too, i must have done something weird, sorry :-/
> > 
> > I'll start the regression test again.
> > 
> > Albert
> 
> Ok, thanks for the notice!

The regression test was successful, though i have some questions i'd like to 
get answered before commiting the patch.

In Gfx::gouraudFillTriangle you removed the check for contentIsHidden, why?

Why do this if everything else in the line is intengers, what's the point of 
having a 2. there?
-      color01.c[i] = (color0->c[i] + color1->c[i]) / 2;
+      color01.c[i] = (color0->c[i] + color1->c[i]) / 2.;

Albert

> 
> Best regards
> 
> Christian
> 
> >> Best regards
> >> 
> >> Christian
> >> 
> >> Here are the detailed outputs for your reference:
> >> 
> >> for (1):
> >> [ludewich] tmp>>gs bug157704.pdf
> >> GPL Ghostscript 8.71 (2010-02-10)
> >> Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
> >> This software comes with NO WARRANTY: see the file PUBLIC for details.
> >> Processing pages 1 through 1.
> >> Page 1
> >> Error: /unknownerror in --run--
> >> 
> >> Operand stack:
> >>      --dict:6/15(L)--
> >> 
> >> Execution stack:
> >>      %interp_exit   .runexec2   --nostringval--   --nostringval--
> >> 
> >> --nostringval--   2   %stopped_push   --nostringval--
> >> --nostringval--   --nostringval--   false   1   %stopped_push   1878
> >> 1   3   %oparray_pop   1877   1   3   %oparray_pop   1861   1   3
> >> %oparray_pop   --nostringval--   --nostringval--   2   1   1
> >> --nostringval--   %for_pos_int_continue   --nostringval--
> >> --nostringval--   false   1   %stopped_push   --nostringval--
> >> --nostringval--   --nostringval--   %array_continue   --nostringval--
> >> false   1   %stopped_push   --nostringval--   %loop_continue
> >> --nostringval--
> >> 
> >> Dictionary stack:
> >>      --dict:1153/1684(ro)(G)--   --dict:1/20(G)--   --dict:75/200(L)--
> >> 
> >> --dict:75/200(L)--   --dict:108/127(ro)(G)--   --dict:288/300(ro)(G)--
> >> --dict:22/25(L)--   --dict:6/8(L)--   --dict:21/40(L)--  
> >> --dict:3/5(L)-- Current allocation mode is local
> >> Last OS error: 11
> >> GPL Ghostscript 8.71: Unrecoverable error, exit code 1
> >> 
> >> for (2):
> >> [ludewich] tmp>>pdftops -?
> >> pdftops version 0.12.4
> >> [ludewich] tmp>>time pdftops bug157704.pdf
> >> 
> >> real    0m14.925s
> >> user    0m13.900s
> >> sys    0m0.140s
> >> [ludewich] tmp>>gs bug157704.ps
> >> GPL Ghostscript 8.71 (2010-02-10)
> >> [ ALL OK ]
> >> 
> >> for (3):
> >> [ludewich] poppler>>git describe # (with my patch)
> >> poppler-0.14.0-18-g821bc2a
> >> [ludewich] tmp>>time ~/code/xpdf/poppler/utils/pdftops bug157704.pdf
> >> 
> >> real    0m2.785s
> >> user    0m2.540s
> >> sys    0m0.130s
> >> [ludewich] tmp>>gs bug157704.ps
> >> GPL Ghostscript 8.71 (2010-02-10)
> >> Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
> >> This software comes with NO WARRANTY: see the file PUBLIC for details.
> >> [ ALL OK ]
> >> 
> >> 
> >> for (4):
> >> [ludewich] poppler>>git describe # (without my patch using poppler-0.14
> >> ) poppler-0.14.0-3-gb2427d0
> >> [ludewich] tmp>>time ~/code/xpdf/poppler/utils/pdftops bug157704.pdf
> >> 
> >> real    0m15.844s
> >> user    0m13.820s
> >> sys    0m0.140s
> >> [ludewich] tmp>>gs bug157704.ps
> >> GPL Ghostscript 8.71 (2010-02-10)
> >> Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
> >> This software comes with NO WARRANTY: see the file PUBLIC for details.
> >> [ ALL OK ]
> >> 
> >>>> Albert
> >>>> 
> >>>>> Best regards
> >>>>> 
> >>>>> Christian
> >>>>> 
> >>>>> Am 25.07.2010 16:56, schrieb Albert Astals Cid:
> >>>>>> A Dissabte, 3 de juliol de 2010, Christian Feuersaenger va escriure:
> >>>>>>> Hello Albert,
> >>>>>> 
> >>>>>> Hi
> >>>>>> 
> >>>>>>> I've managed to fix a bug in the Shading Type 6/7 (Coons&    cubic
> >>>>>>> tensor patches) implementation.
> >>>>>>> 
> >>>>>>> The bugfix is small and stable (in my eyes); the poppler-0.14
> >>>>>>> branch doesn't implement support for parameterized patch shadings.
> >>>>>>> I modified the existing implementation accordingly with relatively
> >>>>>>> few changes.
> >>>>>>> 
> >>>>>>> Attached you find the patch file and the updated test.pdf to see
> >>>>>>> the improvement.
> >>>>>>> 
> >>>>>>> The file type4567patch.... also includes the patch of my previous
> >>>>>>> mail (they only share the same refinement threshold).
> >>>>>>> 
> >>>>>>> The patch should work relative to poppler-0.14.0-3-gb2427d0 .
> >>>>>> 
> >>>>>> This patch causes a regression in the attached pdf (the blue area
> >>>>>> disappears)
> >>>>>> 
> >>>>>> Albert
> >>>>>> 
> >>>>>>> Best regards
> >>>>>>> 
> >>>>>>> Christian
> >>>>>>> 
> >>>>>>> 
> >>>>>>> _______________________________________________
> >>>>>>> poppler mailing list
> >>>>>>> poppler at lists.freedesktop.org
> >>>>>>> http://lists.freedesktop.org/mailman/listinfo/poppler
> >>>> 
> >>>> _______________________________________________
> >>>> poppler mailing list
> >>>> poppler at lists.freedesktop.org
> >>>> http://lists.freedesktop.org/mailman/listinfo/poppler
> >>>> 
> >>>> 
> >>>> 
> >>>> _______________________________________________
> >>>> poppler mailing list
> >>>> poppler at lists.freedesktop.org
> >>>> http://lists.freedesktop.org/mailman/listinfo/poppler
> >> 
> >> _______________________________________________
> >> poppler mailing list
> >> poppler at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/poppler
> > 
> > _______________________________________________
> > poppler mailing list
> > poppler at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/poppler
> 
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler


More information about the poppler mailing list