Holger Freyther <holger@...> writes:

Hi,

here is a minimal example. How should I properly release
the surface and anything that is attached to it?

1.) valgrind shows use after free in the windowstack
2.) IDirectFBSurface->Clear() creates a memory leak, this is with
    directfb-1.4 as of today.


#include <directfb.h>

int main(int argc, char **argv)
{
    DFBResult  ret;
    IDirectFB *dfb;
    IDirectFBSurface *surface;

    /* Initialize DirectFB. */
    ret = DirectFBInit( &argc, &argv );
    if (ret) {
        D_DERROR( ret, "DFBTest/Resize: DirectFBInit() failed!\n" );
        return ret;
    }

    /* Create super interface. */
    ret = DirectFBCreate( &dfb );
    if (ret) {
        D_DERROR( ret, "DFBTest/Resize: DirectFBCreate() failed!\n" );
        return ret;
    }

    DFBSurfaceDescription surfaceDesc;
    memset(&surfaceDesc,0,sizeof(DFBSurfaceDescription));
    surfaceDesc.width = 100;
    surfaceDesc.height = 200;
    
    surfaceDesc.caps = DSCAPS_PREMULTIPLIED;
    surfaceDesc.pixelformat = DSPF_ARGB;
    surfaceDesc.flags = DFBSurfaceDescriptionFlags(DSDESC_WIDTH |
        DSDESC_HEIGHT | DSDESC_CAPS | DSDESC_PIXELFORMAT);
        

    for (int i = 0; i < 10; ++i) {
        dfb->CreateSurface(dfb , &surfaceDesc, &surface);
        surface->Clear(surface, 0, 0, 0, 0);
        surface->Release(surface); 
    }   
    
    dfb->Release(dfb);
    return 0;
}




_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to