Hi,

I'm trying to create packages for openSUSE once again. I noticed that
build of elementary fails on segfault of edje_cc.

Log of the build can be found here:
http://goo.gl/xTTuj

I tried to analyze coredump of this segfault and it looks like:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff724f236 in evas_object_image_add (e=<value optimized out>)
at evas_object_image.c:147
147        o->cur.cspace =
obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output,
(gdb) bt
#0  0x00007ffff724f236 in evas_object_image_add (e=<value optimized out>) at 
evas_object_image.c:147
#1  0x000000000040441a in data_write_images 
(ef=0xa00580,image_num=0x7fffffffbc04, input_bytes=0x7fffffffbc0c,
     input_raw_bytes=0x7fffffffbc08) at edje_cc_out.c:519
#2  0x00000000004059ad in data_write () at edje_cc_out.c:1084
#3  0x000000000040343f in main (argc=8, argv=<value optimized out>) at 
edje_cc.c:217
(gdb) p obj->layer->evas->engine
$5 = {module = 0x0, func = 0x0, data = {output = 0x0, context = 0x0}, info = 
0x0, info_magic = 0}

Here is the only place (I found till yet) where the pointer may change:

(gdb) 
evas_object_inject (obj=0x9c66c0, e=0xa06150) at evas_layer.c:16
16              lay->layer = obj->cur.layer;
(gdb) 
17              evas_layer_add(lay);
(gdb) p *lay
$28 = {__in_list = {next = 0x0, prev = 0x0, last = 0x0}, layer = 0,
objects = 0x0, evas = 0xa06150, engine_data = 0x0, 
   usage = 0, delete_me = 0 '\000'}

So I suspect buffer engine from te beginning:

Breakpoint 2, data_write_images (ef=0xa00580, image_num=0x7fffffffbc04, 
input_bytes=0x7fffffffbc0c, 
     input_raw_bytes=0x7fffffffbc08) at edje_cc_out.c:519
519                            im = evas_object_image_add(evas);
(gdb) p *evas
$29 = {__in_list = {next = 0x0, prev = 0x0, last = 0x0}, magic = 1886877552, 
pointer = {inside = 1 '\001', 
     mouse_grabbed = 0, button = 0, x = 0, y = 0, object = {in = 0x0}}, 
viewport = {x = 0, y = 0, w = 1, h = 1, 
     changed = 0 '\000'}, output = {w = 1, h = 1, render_method = 0, changed = 
1 '\001'}, damages = 0x0, obscures = 0x0, 
   layers = 0x0, name_hash = 0x9634a0, output_validity = 1, walking_list = 0, 
events_frozen = 0, engine = {module = 0x0, 
     func = 0x0, data = {output = 0x0, context = 0x0}, info = 0x0, info_magic = 
0}, delete_objects = {version = 1, 
     data = 0x0, total = 0, count = 0, step = 256, __magic = 2557874747}, 
active_objects = {version = 1, data = 0x0, 
     total = 0, count = 0, step = 256, __magic = 2557874747}, restack_objects = 
{version = 1, data = 0x0, total = 0, 
     count = 0, step = 256, __magic = 2557874747}, render_objects = {version = 
1, data = 0x0, total = 0, count = 0, 
     step = 256, __magic = 2557874747}, pending_objects = {version = 1, data = 
0x0, total = 0, count = 0, step = 256, 
     __magic = 2557874747}, obscuring_objects = {version = 1, data = 0x0, total 
= 0, count = 0, step = 256, 
     __magic = 2557874747}, temporary_objects = {version = 1, data = 0x0, total 
= 0, count = 0, step = 256, 
     __magic = 2557874747}, calculate_objects = {version = 1, data = 0x0, total 
= 0, count = 0, step = 256, 
     __magic = 2557874747}, clip_changes = {version = 1, data = 0x0, total = 0, 
count = 0, step = 256, 
     __magic = 2557874747}, post_events = 0x0, callbacks = 0x0, delete_grabs = 
0, walking_grabs = 0, grabs = 0x0, 
   font_path = 0x0, focused = 0x0, attach_data = 0xa00a90, modifiers = {mod = 
{count = 6, list = 0x964ad0}, mask = 0}, 
   locks = {lock = {count = 3, list = 0x905130}, mask = 0}, last_timestamp = 0, 
last_mouse_down_counter = 0, 
   last_mouse_up_counter = 0, nochange = 0, hinting = 
EVAS_FONT_HINTING_BYTECODE, changed = 1 '\001', delete_me = 0 '\000', 
   invalidate = 1 '\001', cleanup = 0 '\000', focus = 0 '\000'}
(gdb) p evas->engine
$30 = {module = 0x0, func = 0x0, data = {output = 0x0, context = 0x0}, info = 
0x0, info_magic = 0}


Since I believe more in your programming skills than my packaging, I'd
like to know what did I wrong.

Thanks!

Best regards,

Tomas Cech
Sleep_Walker

------------------------------------------------------------------------------
5 Ways to Improve & Secure Unified Communications
Unified Communications promises greater efficiencies for business. UC can 
improve internal communications as well as offer faster, more efficient ways
to interact with customers and streamline customer service. Learn more!
http://www.accelacomm.com/jaw/sfnl/114/51426253/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to