mirror of
https://github.com/glfw/glfw.git
synced 2025-10-04 13:46:37 +00:00
free visualinfo and picture format info structures (plug a memory leak)
This commit is contained in:
parent
da33cc3923
commit
de4835e0d6
@ -79,7 +79,9 @@ static GLFWbool chooseFBConfig(
|
||||
|
||||
usableConfigs = calloc(nativeCount, sizeof(_GLFWfbconfig));
|
||||
usableCount = 0;
|
||||
|
||||
|
||||
XVisualInfo *visualinfo = NULL;
|
||||
XRenderPictFormat *pictFormat = NULL;
|
||||
selectionloop:
|
||||
for (i = 0; i < nativeCount; i++)
|
||||
{
|
||||
@ -98,13 +100,21 @@ selectionloop:
|
||||
}
|
||||
|
||||
if( findTransparent ) {
|
||||
XVisualInfo *visualinfo;
|
||||
XRenderPictFormat *pictFormat;
|
||||
|
||||
if( visualinfo ) {
|
||||
XFree( visualinfo );
|
||||
visualinfo = NULL;
|
||||
}
|
||||
|
||||
visualinfo = glXGetVisualFromFBConfig(_glfw.x11.display, n);
|
||||
if (!visualinfo)
|
||||
continue;
|
||||
|
||||
if( pictFormat ) {
|
||||
XFree( pictFormat );
|
||||
pictFormat = NULL;
|
||||
}
|
||||
|
||||
pictFormat = XRenderFindVisualFormat(_glfw.x11.display, visualinfo->visual);
|
||||
if( !pictFormat )
|
||||
continue;
|
||||
@ -141,6 +151,15 @@ selectionloop:
|
||||
|
||||
u->glx = n;
|
||||
usableCount++;
|
||||
|
||||
if( visualinfo ) {
|
||||
XFree( visualinfo );
|
||||
visualinfo = NULL;
|
||||
}
|
||||
if( pictFormat ) {
|
||||
XFree( pictFormat );
|
||||
pictFormat = NULL;
|
||||
}
|
||||
}
|
||||
// reiterate the selection loop without looking for transparency supporting
|
||||
// formats if no matchig FB configs for a transparent window were found.
|
||||
|
Loading…
Reference in New Issue
Block a user