On 04/22/2012 10:08 PM, Peter Hutterer wrote: > On Fri, Apr 20, 2012 at 03:30:30PM -0700, Chase Douglas wrote: >> The extension record is currently leaked and never freed. >> >> Signed-off-by: Chase Douglas <chase.doug...@canonical.com> >> --- >> src/XExtInt.c | 11 ++++++++++- >> 1 files changed, 10 insertions(+), 1 deletions(-) >> >> diff --git a/src/XExtInt.c b/src/XExtInt.c >> index 43738a2..27638bd 100644 >> --- a/src/XExtInt.c >> +++ b/src/XExtInt.c >> @@ -434,7 +434,16 @@ XInputClose( >> XFree((char *)((XInputData *) info->data)->vers); >> XFree((char *)info->data); >> } >> - return XextRemoveDisplay(xinput_info, dpy); >> + >> + if (!XextRemoveDisplay(xinput_info, dpy)) >> + return 0; >> + >> + if (xinput_info->ndisplays == 0) { >> + XextDestroyExtension(xinput_info); >> + xinput_info = NULL; >> + } >> + >> + return 1; >> } >> >> static int >> -- >> 1.7.9.1 > > with this patch applied and a grep over the libX* directories, we now have 2 > extensions calling XextDestroyExtension(). Can we automate this in > XextRemoveDisplay somehow?
I think it would require API breaks, and this would fall way way near the bottom of my todo list, tbh :(. -- Chase _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel