Re: [Gimp-developer] segmentation fault when trying to replace deprecated functions in lcms.c



On 9/20/12, trapDoor <trapdoor6 gmail com> wrote:
> On Thu, Sep 20, 2012 at 12:37 AM, Michael Natterer <mitch gimp org> wrote:
>> On Wed, 2012-09-19 at 14:47 -0400, Christopher Curtis wrote:
>>> On Wed, Sep 19, 2012 at 2:13 PM, Guillermo Espertino (Gez) <
>>> gespertino gmail com> wrote:
>>>
>>> >  El 19/09/12 10:43, Christopher Curtis escribió:
>>> >
>>> >  Wouldn't it be better to keep the mainline in a near-releasable state
>>> > rather than letting things bit-rot in master, causing 3-year intervals
>>> > between releases?
>>> >
>>> > Moving it to master could mean that mode developers and contributors
>>> > realize its importance and they won't let it bitrot.
>>> >
>>>
>>> Well, as I haven't contributed code I'll step out after this comment, but
>>> I
>>> don't think that merging something that breaks common work flows,
>>> seriously
>>> degrades performance, and causes segmentation faults belongs in master.


My lcms.c high bit depth code doesn't degrade performance and doesn't
cause segmentation faults. When I first was attempting to wrap my
brain around gegl buffers, I had a problem with segmentation faults,
which is why I started this thread. But after consuming copious
quantities of coffee, time, and a huge helping of the gegl api, much
delving into Gimp code for examples, and a hint or two from Mitch, the
segmentation problems have all been fixed.

I'm not sure what you mean by "breaks common work flows". You probably
don't mean that having the option to do a high bit depth color
conversion without ending up with an 8-bit color gamut is going to
break anyone's workflow!

The reason that I don't think my code is ready for uploading to master
is because:

*I haven't found the time to finish rewriting all the code sections to
get them to work with gegl buffers (alpha channel, the progress bar).

*I don't think I'm closing out the buffers properly, which is probably
why "undo" isn't working properly. I need some input on this issue.

*Some of the functions in babl/base/model-rgb.c seem to be getting in
the middle of the high bit depth ICC profile conversions, but not in
the middle of 8-bit profile conversions. I don't know how to track
down which Gimp functions are invoking these problematic Babl
functions. One "interim" way to deal with the situation is comment out
the calls to the functions in util.h that are done by the functions in
model-rgb.c. Another way would be to locate the Gimp functions that
are calling the model-rgb.c functions in the middle of the ICC profile
conversion and modify them. I've put up parallel terminal output
comparing 8-bit and 16-bit profile conversions here:
http://ninedegreesbelow.com/temp/gimp-lcms-deprecated.html#bitdepth


>> What makes you think we would merge something to master that would
>> definitely crash? We do use some common sense while we sit on our
>> fat asses and do nothing while the world waits for the next release.
>>
>> --mitch

I just want to say that I've always taken Gimp for granted. Having
spent some time working with a small portion of the code, I see with
new eyes. The code base is huge. The user base is huge. The number of
active developers seems to be not very many.

>
> I don't understand why did i trigger such reactions. I thought it's
> obvious that letting more testers to try out the new code would be
> only to the GIMPs benefit - and the best way to do it is to publish it
> in the gimp git repo. Whether to keep it in separate branch (obviously
> temporarily - I didn't mean forever) or merge right away into master -
> that should be decided upon by the devs. My idea was nothing unusual
> (many new GIMP features were grown initially in separate branches) -
> so what's the fuss?
>
> Regards,
> Tomasz B.

If anyone wants to try my lcms plug-in code and let me how it works
for them, that would be fantastic. The version that uses deprecated
code works perfectly, as far as I can tell, but I'm only one person,
using one computer. The only thing is, you do need to modify one Babl
file, babl/babl/base/model-rgb.c, and then recompile Babl.
Instructions for compiling the plug-in and also download files for
both versions of the plug-in and the modified babl file are here:
http://ninedegreesbelow.com/temp/gimp-lcms-6.html.

Kindest regards,
Elle Stone


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]