Sam Bobroff wrote:
> Carsten Haitzler (The Rasterman) wrote:
> 
>>> On Sat, 20 Jan 2007 01:32:41 +1100 Sam Bobroff <[EMAIL PROTECTED]> babbled:
>>>   
>>   
> [snip]
> 
>>> unfortunately the real problem is that someone is calling 
>>> e_widget_sub_object_add
>>> () on an object that isnt an e_widget - and thats bad. can you get a 
>>> backtrace?
>>>   
>>   
> I've tracked this back as follows:
> 
>     _basic_create_widgets calls e_fm2_icon_get (with the file path 
> pointing to a .desktop file that won't produce an icon).
>         e_fm2_icon_get returns null, with ret_type "DESKTOP".
>     _basic_create_widgets calls e_widget_button_icon_set with oi = NULL.
>        e_widget_button_icon_set calls e_widget_sub_object_add with icon 
> = NULL.
>           e_widget_sub_object_add calls evas_object_type_get on NULL.
>              evas_object_type_get returns NULL.
>           e_widget_sub_object_add does a strcmp on NULL and crashes.
> 
> I add an "if (oi)" before the call to e_widget_button_icon_set it stops 
> the crash.
> 
> I don't know the e code at all, but from the "if (itype)" clause right 
> below this, it looks like having "itype" set implies an icon exists so 
> perhaps a fix would be to change e_fm2_icon_get to return a NULL 
> ret_type if it's going to return a NULL icon and change 
> _basic_create_widgets to move the e_widget_button_icon_set call (and 
> e_widget_frametable_object_append call?) inside the "if (itype)" clause. 
> I suppose it all depends on what callers of e_fm2_icon_get expect, and I 
> really don't know what that is  ;-) 
> 
> As I said I'm just guessing but I hope this is useful anyway,
> 
>     Sam.
> 
I have added some extra traps in e_widget_button_icon_set that checks
for NULL icon and in effect hides any existing icon that was on the
button. This provides a two-fold advantage: 1) button icons can now be
"unset" and 2) traps around the icon == NULL problem your having.

Cheers,
dh


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to