evas canvas destruction - detect zombie objs and hack at them with axes
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 28 Jul 2016 15:00:49 +0000 (00:00 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 28 Jul 2016 15:02:03 +0000 (00:02 +0900)
commit742fbc5717f3b70a4f3c900f648f9cc761985966
tree01f5e8578e2329d51aaf6eaaa5c1d185c19ec232
parent63a3da0c0fa2e4a05cd214ccb39c703be137ab5d
evas canvas destruction - detect zombie objs and hack at them with axes

ok. so here's the issue at least now. we have eo objects in the canvas
and they have a refcount of 2 user_refcount is 0. the calls stack does
NOT show we are calling callbacks at that time on these objects. they
are not in the backtrace (the canvas is, the objects themselves are
not).

SOMETHING is keeping 2 eo "internal" refs on these objects and i have
no idea what/how/who. it's a royal pain in the butt to find out as the
only way is lots and lots of logging and you get drowned in the
logging...

so what I have now done is a super ugly workaround that detects these
zombie objects that refuse to die and just FORCES them to die when the
evas canvas frees and clears out layers.
ac10a00acc6bacf01bfd208cc78b4eb2a6a925d8 doesn't really cause the
issue, it just brings it out in the open for all to see far more
easily. but something is deeply wrong SOMEWHERE with SOME objects and
our refcounts.

this fixes T4187
src/lib/eo/Eo.h
src/lib/eo/eo.c
src/lib/evas/canvas/evas_main.c