[poppler] Bugfix proposal for Shading Type 6 and 7
Christian Feuersaenger
cfeuersaenger at googlemail.com
Wed Oct 13 11:56:54 PDT 2010
Am 13.10.2010 20:34, schrieb Albert Astals Cid:
> 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!
>>
>
Dear Albert,
thanks for the thorough testing.
> 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?
>
Hm. It seems as if the test should be there - I must have forgotten to
include it. Thank you for pointing it out! Could you add it right before
the fill statement?
> 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.;
>
>
You are right, that's certainly a waste of time. I should have
investigated the compiler warnings; sorry about that. Please feel free
to remove the double suffixes.
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
>>
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler
>
More information about the poppler
mailing list