glx: do not leak the dri2 extension information
authorEmil Velikov <emil.l.velikov@gmail.com>
Thu, 22 Jan 2015 17:35:40 +0000 (17:35 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 18 Feb 2015 11:02:25 +0000 (11:02 +0000)
The XExtensionInfo is allocated dynamically (if the pointer is NULL)
in the XEXT_GENERATE_FIND_DISPLAY macro. On the other hand the
macro XEXT_GENERATE_CLOSE_DISPLAY does not check/free the memory.

Follow the example set by dri1 and appledri, and use a static variable.

Spotted while hunting "still reachable" leaks in Waffle.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
src/glx/dri2.c

index cc6c1641669f82526011715853d0ec35e4f3fd2f..9ebd00ac849517f48f1f544d5b3861dcaa723d8e 100644 (file)
@@ -53,7 +53,8 @@
 
 
 static char dri2ExtensionName[] = DRI2_NAME;
-static XExtensionInfo *dri2Info;
+static XExtensionInfo _dri2Info_data;
+static XExtensionInfo *dri2Info = &_dri2Info_data;
 static XEXT_GENERATE_CLOSE_DISPLAY (DRI2CloseDisplay, dri2Info)
 
 static Bool