From ac14a2eec8851e349215eb7612295ed04ebe08d2 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 21 Oct 2009 10:34:01 +0200 Subject: [PATCH] winex11.drv: Properly free "visinfo" in get_formats() (Valgrind). --- dlls/winex11.drv/opengl.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index 4e4a3a047e2..9f97099a49e 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c @@ -906,7 +906,10 @@ static WineGLPixelFormat *get_formats(Display *display, int *size_ret, int *onsc * with a depth of 32 in addition to the default 24 bit. In order to prevent BadMatch errors we only * list formats with the same depth. */ if(visinfo->depth != screen_depth) + { + XFree(visinfo); continue; + } TRACE("Found onscreen format FBCONFIG_ID 0x%x corresponding to iPixelFormat %d at GLX index %d\n", fmt_id, size+1, i); list[size].iPixelFormat = size+1; /* The index starts at 1 */ @@ -931,8 +934,6 @@ static WineGLPixelFormat *get_formats(Display *display, int *size_ret, int *onsc size++; onscreen_size++; } - - XFree(visinfo); } else if(run && !visinfo) { TRACE("Found offscreen format FBCONFIG_ID 0x%x corresponding to iPixelFormat %d at GLX index %d\n", fmt_id, size+1, i); list[size].iPixelFormat = size+1; /* The index starts at 1 */ @@ -943,6 +944,8 @@ static WineGLPixelFormat *get_formats(Display *display, int *size_ret, int *onsc list[size].dwFlags = 0; size++; } + + if (visinfo) XFree(visinfo); } }