xim.c: dont leak fontSet
Aric Stewart
aric at codeweavers.com
Tue Oct 24 12:17:40 CDT 2006
Only create a fontSet if we are going to be using it in the XIC. We do
not need to free it as it is appearers to be taken care of by X
-------------- next part --------------
diff --git a/dlls/winex11.drv/xim.c b/dlls/winex11.drv/xim.c
index 155c8d7..4ca9c7f 100644
--- a/dlls/winex11.drv/xim.c
+++ b/dlls/winex11.drv/xim.c
@@ -456,7 +456,7 @@ err:
XIC X11DRV_CreateIC(XIM xim, Display *display, Window win)
{
- XFontSet fontSet;
+ XFontSet fontSet = NULL;
char **list;
int count;
XPoint spot = {0};
@@ -485,22 +485,27 @@ XIC X11DRV_CreateIC(XIM xim, Display *di
return xic;
}
- fontSet = XCreateFontSet(display,
- "*", /*FIXME*/
- &list, &count, NULL);
- TRACE("ximFontSet = %p\n", fontSet);
- TRACE("list = %p, count = %d\n", list, count);
-
- if (list != NULL)
+ if (((ximStyle & (XIMPreeditNothing | XIMPreeditNone)) == 0) ||
+ ((ximStyle & (XIMStatusNothing | XIMStatusNone)) == 0))
{
- int i;
+ fontSet = XCreateFontSet(display,
+ "*", /*FIXME*/
+ &list, &count, NULL);
+
+ TRACE("ximFontSet = %p\n", fontSet);
+ TRACE("list = %p, count = %d\n", list, count);
- for (i = 0; i < count; ++i)
+ if (list != NULL)
{
- TRACE("list[%d] = %s\n", i, list[i]);
+ int i;
+
+ for (i = 0; i < count; ++i)
+ {
+ TRACE("list[%d] = %s\n", i, list[i]);
+ }
+ XFreeStringList(list);
}
- XFreeStringList(list);
}
/* create callbacks */
More information about the wine-patches
mailing list