On Fri, Jan 22, 2010 at 03:20:15PM +0100, Martin Jansa wrote:
> Hi All!
>
> if someone have some spare time..
>
> EFL_SRCREV ?= "45438" but I have seen it also with other revs I've tried
> after 45060.
as newer EFL rev already hit the shr-u feeds, here is more info
I have working work-around, but I won't commit it as it's ugly and
average python programmer should fix it better (I'm not python
programmer at all).
Without optimizations and with debug opts enabled in build
Program received signal SIGSEGV, Segmentation fault.
0x40d321ce in initc_evas () at evas/evas.c_evas.c:64073
warning: Source file is more recent than executable.
64073 Py_DECREF(__pyx_v_4evas_6c_evas__smart_classes);
(gdb) bt
#0 0x40d321ce in initc_evas () at evas/evas.c_evas.c:64073
#1 0x400b45bc in __real__PyImport_LoadDynamicModule () from
/usr/lib/libpython2.6.so.1.0
#2 0x400b2c16 in load_module () from /usr/lib/libpython2.6.so.1.0
#3 0x400b3270 in import_submodule () from /usr/lib/libpython2.6.so.1.0
#4 0x404a03b0 in ?? ()
Cannot access memory at address 0x0
#5 0x404a03b0 in ?? ()
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
It's this c code, generated from pxi:
/*
"/home/projects/OE/tmpdir-dev-shr/work/armv4t-oe-linux-gnueabi/python-evas-0.3.1+svnr45551-ml0/python-evas/evas/evas.c_evas_object_smart.pxi":21
*
* cdef object _smart_classes
* _smart_classes = list() # <<<<<<<<<<<<<<
*
* import traceback
*/
__pyx_9 = PyObject_Call(((PyObject *)((PyObject*)&PyList_Type)), ((PyObject
*)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_9)) {__pyx_filename =
__pyx_f[3]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
Py_DECREF(__pyx_v_4evas_6c_evas__smart_classes);
__pyx_v_4evas_6c_evas__smart_classes = __pyx_9;
__pyx_9 = 0;
I have no idea why it generates Py_DECREF in case where _smart_classes was
empty before
or if that's normal why it fails with dereferencing 0 inside this macro.
From http://docs.python.org/c-api/refcounting.html
Decrement the reference count for object o. The object must not be NULL; if you
aren’t sure that it isn’t NULL, use Py_XDECREF().
If the reference count reaches zero, the object’s type’s deallocation function
(which must not be NULL) is invoked.
seem's like pyx > .c generations is wrong or at least quite dangerous.
Workaround is to remove all _smart_classes refs in that .pxi file :). But real
problem should be found.
BTW: I used python-2.6.4 instead of default python-2.6.2 but the segfault seems
the same as before.
--
uin:136542059 jid:[email protected]
Jansa Martin sip:[email protected]
JaMa
_______________________________________________
Shr-devel mailing list
[email protected]
http://lists.shr-project.org/mailman/listinfo/shr-devel