[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] E17 ghost windows

On Tue, 4 Jul 2006 08:17:14 +1000 David Seikel <onefang@gmail.com> babbled:

> On Tue, 4 Jul 2006 01:12:50 +0300 "Hisham Mardam Bey"
> <hisham.mardambey@gmail.com> wrote:
> > After some careful inspection, I managed to stumble across a bug in
> > E17. The basic idea is that if a window is shown and hidden a lot and
> > quickly, E17 somehow loses track of it and it becomes a ghost window.
> > 
> > To illustrate this, I've attached a very simple test program, ghost.c,
> > that will show and hide the window periodically. Eventually, the
> > window becomes a ghost window.
> > 
> > This problem does not happen when using other window managers (at
> > least not with fluxbox, which is what I've tested with).
> Is this the first witch rearing its ugly head again?  Raster, can you
> remember what you did to fix that the first time?  May be completely
> unrelated off course.

the first time i enabled "object bread crumbs" (you will still see the code
commented out throughout e's code - just search for "crumb"). basically every
reference count added got a crumb with a string attached and when the MATCHING
unref for that bit of code was called it also removed the crumb with the same
string. there was a timer that ran that if it found a window that is a ghost
(erroneous reference count) checking every now and again (every second - the
code is still commented out - then _e_border_del_dangling_ref_check() timer)
then it would scream and dump the breadcrumb list - the breadcrumb list would
then tell u which ref was somehow not matched by an unref - and thus let u knwo
what to look at code-path wise :)

------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster@rasterman.com
Tokyo, Japan (東京 日本)