Re: [code] [textadept] TA 9.1 SIGSEGV in libgail.so

From: Gabriel Dubatti <gdubatti.att.gmail.com>
Date: Mon, 19 Dec 2016 22:14:56 -0300

Hi Mitchell,

If I compile TA 9.1 using the scintilla folder from TA 9.0 (downgrading
scintilla from version 371 to 366) and keeping the rest of the code the
same (except line 2220 in textadept.c: SC_POPUP_NEVER => 0) the issue is
gone!

Replacing SC_POPUP_NEVER with 0 without downgrading scintilla doesn't
solve the issue.

This version adds a file called ScintillaGTKAccessible.cxx with this
comments:

// On GTK < 3.2, we need to use the AtkObjectFactory. We need to query
// the factory to see what type we should derive from, thus making use of
// dynamic inheritance. It's tricky, but it works so long as it's done
// carefully enough.
//
// On GTK 3.2 through 3.6, we need to hack around because GTK stopped
// registering its accessible types in the factory, so we can't query
// them that way. Unfortunately, the accessible types aren't exposed
// yet (not until 3.8), so there's no proper way to know which type to
// inherit from. To work around this, we instantiate the parent's
// AtkObject temporarily, and use it's type. It means creating an extra
// throwaway object and being able to pass the type information up to the
// type registration code, but it's the only solution I could find.
//
// On GTK 3.8 onward, we use the proper exposed GtkContainerAccessible as
// parent, and so a straightforward class.
//
// To hide and contain the complexity in type creation arising from the
// hackish support for GTK 3.2 to 3.8, the actual implementation for the
// widget's get_accessible() is located in the accessibility layer itself.

// Initially based on GtkTextViewAccessible from GTK 3.20
// Inspiration for the GTK < 3.2 part comes from Evince 2.24, thanks.

// FIXME: optimize character/byte offset conversion (with a cache?)

which seems a little fragile to me....

I will let you know if I find something else.

Cheers,
Gabriel

El 17/12/16 a las 12:08, Gabriel Dubatti escribió:
> El 17/12/16 a las 11:48, Mitchell escribió:
>> Hi Gabriel,
>>
>> On Sat, 17 Dec 2016, Gabriel Dubatti wrote:
>>
>>> Hi Mitchell,
>>>
>>> Yesterday I noticed that TA hangs when trying to split views in
>>> Ubuntu Mate 16.04 64 bits (in 32 bits too) so I downloaded the last
>>> 9.1 NIGTHLY, rename my ~/.textadept folder and tested it and the
>>> issue persists.
>>>
>>> The last 9.0 version I have in this computer runs fine.
>>>
>>> I run gdb and found that the issue is related to libgail.so:
>>>
>>> package: libgail-common
>>> gtk+2.0
>>> 2.24.30-1ubuntu1
>>>
>>> Here's a screen dump after trying to split the view vertically
>>> from the menu:
>>>
>>> [snip]
>>
>> Thanks for the detailed traceback. The crash occurs within a GTK
>> call, more specifically `gtk_container_remove()`. Textadept keeps
>> track of view references properly, and since I've never seen this
>> before, I'm thinking it's a GTK problem :( (Also, the code around the
>> crash has not been changed in years.)
>>
>> Do you still get the crash when you recompile Textadept yourself?
>>
>> Cheers,
>> Mitchell
>
> Yes. I usually run TA compiled with my toolbar. At first I thought
> that was the problem, so I downloaded the latest nightly version and
> remove my configs.
> It seems that some gtk related update broke it (both in 64 and 32 bits
> versions).
> I'm running Win32 at work without any issue, though.
> I will let you know if I find something else.
> Cheers,
> Gabriel

-- 
You are subscribed to code.att.foicica.com.
To change subscription settings, send an e-mail to code+help.att.foicica.com.
To unsubscribe, send an e-mail to code+unsubscribe.att.foicica.com.
Received on Mon 19 Dec 2016 - 20:14:56 EST

This archive was generated by hypermail 2.2.0 : Tue 20 Dec 2016 - 06:50:58 EST