I was deleting a lot of leaks in GGL, and I think I've found a leak
into GGI, here is the stack info:

Leaked 0x806ecf0 (2048 bytes)
        _default_zero(): /tmp/degas/lib/ggi2-1.99.2.0b2.1/ggi/visual.c:46
        alloc_fb(): /tmp/degas/lib/ggi2-1.99.2.0b2.1/display/memory/mode.c:91
        _GGIdomode(): /tmp/degas/lib/ggi2-1.99.2.0b2.1/display/memory/mode.c:145
        _GGIdomode(): /tmp/degas/lib/ggi2-1.99.2.0b2.1/display/memory/mode.c:169
        _ggiCheck4Defaults(): /tmp/degas/lib/ggi2-1.99.2.0b2.1/ggi/mode.c:68
        ggl_visual_set_mode(): /home/ryu/devel/GPUL/ggl/src/graphics/gglvisual.c:105
        ggl_timeout_start(): /home/ryu/devel/GPUL/ggl/src/ggltimeout.c:152
        ggl_timeout_start(): /home/ryu/devel/GPUL/ggl/src/ggltimeout.c:152
        ggl_timeout_start(): /home/ryu/devel/GPUL/ggl/src/ggltimeout.c:152
        ggl_timeout_start(): /home/ryu/devel/GPUL/ggl/src/ggltimeout.c:152
        (???)
        _start(): (null):0

        I thought that maybe this leak were produced because of GGL code,
but I couldn't find more leaks on it.

The code at line 105 of ggl_visual_set_mode() is:
    error= ggiSetMode(visual->visual,&gmode);

        And visual->visual is a successfully opened visual with the type
shown below:

struct _GglVisual{
  GglBase base;         /* Base class */
  int id;               /* Class Identifier */
  ggi_visual_t visual;  /* GGI Visual*/
[...]

        The code at line 152 of ggl_timeout_start does nothing but return a
number (no mallocs). The reason why the stack looks like this is that I
catch alarm signal and use linux interval timers [setitimer()].

        The example that I've tested creates 24 visuals (1 with target X and
23 with target memory) and never loses pointers to any of them.

        I wish this is enough information :)
-- 
  _
 /_) \/ / /  email: mailto:[EMAIL PROTECTED]
/ \  / (_/   www  : http://programacion.mundivia.es/ryu
[ GGL developer ] & [ IRCore developer ] & [ GPUL member ]

Reply via email to