aboutsummaryrefslogtreecommitdiff
path: root/libX11/src
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-06-08 15:05:49 +0200
committermarha <marha@users.sourceforge.net>2014-06-08 15:05:49 +0200
commit71cc8d9b7dc729934a29445cbd6d1f7a6d9ecbec (patch)
treeea689cdd51f395980ddc37dc33781635976f3a16 /libX11/src
parentaec798fb4dc72d616732d0fa711faffaa8cd7590 (diff)
parent2acb86c9b086bdb9a3897db0b93820652e07cb59 (diff)
downloadvcxsrv-71cc8d9b7dc729934a29445cbd6d1f7a6d9ecbec.tar.gz
vcxsrv-71cc8d9b7dc729934a29445cbd6d1f7a6d9ecbec.tar.bz2
vcxsrv-71cc8d9b7dc729934a29445cbd6d1f7a6d9ecbec.zip
Merge remote-tracking branch 'origin/released'
Conflicts: apps/xwininfo/xwininfo.c xorg-server/hw/xwin/glx/indirect.c
Diffstat (limited to 'libX11/src')
-rw-r--r--libX11/src/FetchName.c4
-rw-r--r--libX11/src/Font.c22
-rw-r--r--libX11/src/FontInfo.c4
-rw-r--r--libX11/src/FontNames.c4
-rw-r--r--libX11/src/GetFPath.c4
-rw-r--r--libX11/src/GetHints.c16
-rw-r--r--libX11/src/GetNrmHint.c2
-rw-r--r--libX11/src/GetRGBCMap.c8
-rw-r--r--libX11/src/GetStCmap.c2
-rw-r--r--libX11/src/GetWMCMapW.c2
-rw-r--r--libX11/src/ImUtil.c4
-rw-r--r--libX11/src/InitExt.c2
-rw-r--r--libX11/src/KeyBind.c9
-rw-r--r--libX11/src/ListExt.c4
-rw-r--r--libX11/src/ModMap.c5
-rw-r--r--libX11/src/OpenDis.c34
-rw-r--r--libX11/src/PutImage.c11
-rw-r--r--libX11/src/RdBitF.c2
-rw-r--r--libX11/src/ScrResStr.c3
-rw-r--r--libX11/src/StBytes.c2
-rw-r--r--libX11/src/XlibInt.c12
-rw-r--r--libX11/src/xkb/XKBNames.c9
-rw-r--r--libX11/src/xlibi18n/lcUTF8.c4
23 files changed, 82 insertions, 87 deletions
diff --git a/libX11/src/FetchName.c b/libX11/src/FetchName.c
index 8605a6dfc..160eb5bd6 100644
--- a/libX11/src/FetchName.c
+++ b/libX11/src/FetchName.c
@@ -58,7 +58,7 @@ Status XFetchName (
*name = (char *)data;
return(1);
}
- if (data) Xfree (data);
+ Xfree (data);
*name = NULL;
return(0);
}
@@ -89,7 +89,7 @@ Status XGetIconName (
*icon_name = (char*)data;
return(1);
}
- if (data) Xfree (data);
+ Xfree (data);
*icon_name = NULL;
return(0);
}
diff --git a/libX11/src/Font.c b/libX11/src/Font.c
index 6fadd5877..650bc6f69 100644
--- a/libX11/src/Font.c
+++ b/libX11/src/Font.c
@@ -170,8 +170,8 @@ XFreeFont(
#endif
}
_XFreeExtData(fs->ext_data);
- if (fs->properties)
- Xfree (fs->properties);
+
+ Xfree (fs->properties);
Xfree (fs);
return 1;
}
@@ -271,7 +271,7 @@ _XQueryFont (
}
}
if (! fs->per_char) {
- if (fs->properties) Xfree(fs->properties);
+ Xfree(fs->properties);
Xfree(fs);
_XEatDataWords(dpy, reply_left);
return (XFontStruct *)NULL;
@@ -524,14 +524,14 @@ _XF86BigfontQueryFont (
+ (reply.nCharInfos+1)/2 * 2 * sizeof(CARD16);
pUniqCI = Xmalloc (nbytes);
if (!pUniqCI) {
- if (fs->properties) Xfree(fs->properties);
+ Xfree(fs->properties);
Xfree(fs);
_XEatDataWords(dpy, reply_left);
return (XFontStruct *)NULL;
}
if (! (fs->per_char = Xmalloc (reply.nCharInfos * sizeof(XCharStruct)))) {
Xfree(pUniqCI);
- if (fs->properties) Xfree(fs->properties);
+ Xfree(fs->properties);
Xfree(fs);
_XEatDataWords(dpy, reply_left);
return (XFontStruct *)NULL;
@@ -542,7 +542,7 @@ _XF86BigfontQueryFont (
if (pIndex2UniqIndex[i] >= reply.nUniqCharInfos) {
fprintf(stderr, "_XF86BigfontQueryFont: server returned wrong data\n");
Xfree(pUniqCI);
- if (fs->properties) Xfree(fs->properties);
+ Xfree(fs->properties);
Xfree(fs);
return (XFontStruct *)NULL;
}
@@ -558,7 +558,7 @@ _XF86BigfontQueryFont (
pData = Xmalloc(sizeof(XExtData));
if (!pData) {
- if (fs->properties) Xfree(fs->properties);
+ Xfree(fs->properties);
Xfree(fs);
return (XFontStruct *)NULL;
}
@@ -578,7 +578,7 @@ _XF86BigfontQueryFont (
if (extcodes->serverCapabilities & CAP_VerifiedLocal)
fprintf(stderr, "_XF86BigfontQueryFont: could not attach shm segment\n");
Xfree(pData);
- if (fs->properties) Xfree(fs->properties);
+ Xfree(fs->properties);
Xfree(fs);
/* Stop requesting shared memory transport from now on. */
extcodes->serverCapabilities &= ~ XF86Bigfont_CAP_LocalShm;
@@ -593,7 +593,7 @@ _XF86BigfontQueryFont (
&& *(CARD32 *)(addr + reply.shmsegoffset + reply.nCharInfos * sizeof(XCharStruct)) == extcodes->serverSignature)) {
shmdt(addr);
Xfree(pData);
- if (fs->properties) Xfree(fs->properties);
+ Xfree(fs->properties);
Xfree(fs);
/* Stop requesting shared memory transport from now on. */
extcodes->serverCapabilities &= ~ XF86Bigfont_CAP_LocalShm;
@@ -697,8 +697,8 @@ int _XF86LoadQueryLocaleFont(
#endif
}
_XFreeExtData(fs->ext_data);
- if (fs->properties)
- Xfree (fs->properties);
+
+ Xfree (fs->properties);
*fidp = fs->fid;
Xfree (fs);
} else {
diff --git a/libX11/src/FontInfo.c b/libX11/src/FontInfo.c
index 763aafb3d..a2d12c2ec 100644
--- a/libX11/src/FontInfo.c
+++ b/libX11/src/FontInfo.c
@@ -179,8 +179,8 @@ XFontStruct **info) /* RETURN */
Xfree(flist[j]);
if (finfo[j].properties) Xfree(finfo[j].properties);
}
- if (flist) Xfree(flist);
- if (finfo) Xfree(finfo);
+ Xfree(flist);
+ Xfree(finfo);
clearwire:
/* Clear the wire. */
diff --git a/libX11/src/FontNames.c b/libX11/src/FontNames.c
index c50de2eeb..6fc6b1272 100644
--- a/libX11/src/FontNames.c
+++ b/libX11/src/FontNames.c
@@ -73,8 +73,8 @@ int *actualCount) /* RETURN */
}
if ((! flist) || (! ch)) {
- if (flist) Xfree(flist);
- if (ch) Xfree(ch);
+ Xfree(flist);
+ Xfree(ch);
_XEatDataWords(dpy, rep.length);
*actualCount = 0;
UnlockDisplay(dpy);
diff --git a/libX11/src/GetFPath.c b/libX11/src/GetFPath.c
index 76ff7327b..62ba01436 100644
--- a/libX11/src/GetFPath.c
+++ b/libX11/src/GetFPath.c
@@ -57,8 +57,8 @@ char **XGetFontPath(
}
if ((! flist) || (! ch)) {
- if (flist) Xfree(flist);
- if (ch) Xfree(ch);
+ Xfree(flist);
+ Xfree(ch);
_XEatDataWords(dpy, rep.length);
UnlockDisplay(dpy);
SyncHandle();
diff --git a/libX11/src/GetHints.c b/libX11/src/GetHints.c
index 5cca0bc93..513b4b090 100644
--- a/libX11/src/GetHints.c
+++ b/libX11/src/GetHints.c
@@ -75,7 +75,7 @@ Status XGetSizeHints (
if ((actual_type != XA_WM_SIZE_HINTS) ||
(nitems < OldNumPropSizeElements) || (actual_format != 32)) {
- if (prop != NULL) Xfree (prop);
+ Xfree (prop);
return(0);
}
hints->flags = (prop->flags & (USPosition|USSize|PAllHints));
@@ -124,7 +124,7 @@ XWMHints *XGetWMHints (
if ((actual_type != XA_WM_HINTS) ||
(nitems < (NumPropWMHintsElements - 1)) || (actual_format != 32)) {
- if (prop != NULL) Xfree (prop);
+ Xfree (prop);
return(NULL);
}
/* static copies not allowed in library, due to reentrancy constraint*/
@@ -196,7 +196,7 @@ Status XGetIconSizes (
(nitems < NumPropIconSizeElements) ||
(nitems % NumPropIconSizeElements != 0) ||
(actual_format != 32)) {
- if (prop != NULL) Xfree (prop);
+ Xfree (prop);
return(0);
}
@@ -204,7 +204,7 @@ Status XGetIconSizes (
nitems /= NumPropIconSizeElements;
if (! (hp = hints = Xcalloc (nitems, sizeof(XIconSize)))) {
- if (prop) Xfree (prop);
+ Xfree (prop);
return 0;
}
@@ -239,7 +239,7 @@ Status XGetCommand (
if (!XGetTextProperty (dpy, w, &tp, XA_WM_COMMAND)) return 0;
if (tp.encoding != XA_STRING || tp.format != 8) {
- if (tp.value) Xfree (tp.value);
+ Xfree (tp.value);
return 0;
}
@@ -254,7 +254,7 @@ Status XGetCommand (
* create a string list and return if successful
*/
if (!XTextPropertyToStringList (&tp, &argv, &argc)) {
- if (tp.value) Xfree (tp.value);
+ Xfree (tp.value);
return (0);
}
@@ -291,7 +291,7 @@ XGetTransientForHint(
return (1);
}
*propWindow = None;
- if (data) Xfree( (char *) data);
+ Xfree( (char *) data);
return(0);
}
@@ -333,6 +333,6 @@ XGetClassHint(
Xfree( (char *) data);
return(1);
}
- if (data) Xfree( (char *) data);
+ Xfree( (char *) data);
return(0);
}
diff --git a/libX11/src/GetNrmHint.c b/libX11/src/GetNrmHint.c
index 5e4143b28..97f04b23b 100644
--- a/libX11/src/GetNrmHint.c
+++ b/libX11/src/GetNrmHint.c
@@ -83,7 +83,7 @@ Status XGetWMSizeHints (
if ((actual_type != XA_WM_SIZE_HINTS) ||
(nitems < OldNumPropSizeElements) || (actual_format != 32)) {
- if (prop != NULL) Xfree (prop);
+ Xfree (prop);
return False;
}
diff --git a/libX11/src/GetRGBCMap.c b/libX11/src/GetRGBCMap.c
index d8a1b3f05..5d570ad3a 100644
--- a/libX11/src/GetRGBCMap.c
+++ b/libX11/src/GetRGBCMap.c
@@ -63,7 +63,7 @@ Status XGetRGBColormaps (
/* if wrong type or format, or too small for us, then punt */
if ((actual_type != XA_RGB_COLOR_MAP) || (actual_format != 32) ||
(nitems < OldNumPropStandardColormapElements)) {
- if (data) Xfree (data);
+ Xfree (data);
return False;
}
@@ -78,7 +78,7 @@ Status XGetRGBColormaps (
Screen *sp = _XScreenOfWindow (dpy, w);
if (!sp) {
- if (data) Xfree (data);
+ Xfree (data);
return False;
}
def_visual = sp->root_visual->visualid;
@@ -90,7 +90,7 @@ Status XGetRGBColormaps (
ncmaps = (nitems / NumPropStandardColormapElements);
if ((((unsigned long) ncmaps) * NumPropStandardColormapElements) !=
nitems) {
- if (data) Xfree (data);
+ Xfree (data);
return False;
}
}
@@ -101,7 +101,7 @@ Status XGetRGBColormaps (
*/
cmaps = Xmalloc (ncmaps * sizeof (XStandardColormap));
if (!cmaps) {
- if (data) Xfree (data);
+ Xfree (data);
return False;
}
diff --git a/libX11/src/GetStCmap.c b/libX11/src/GetStCmap.c
index ac5b0fa88..1cb1e0f01 100644
--- a/libX11/src/GetStCmap.c
+++ b/libX11/src/GetStCmap.c
@@ -81,7 +81,7 @@ Status XGetStandardColormap (
int i;
if (!sp) {
- if (stdcmaps) Xfree (stdcmaps);
+ Xfree (stdcmaps);
return False;
}
vid = sp->root_visual->visualid;
diff --git a/libX11/src/GetWMCMapW.c b/libX11/src/GetWMCMapW.c
index 27f1e232c..d3ef1fea0 100644
--- a/libX11/src/GetWMCMapW.c
+++ b/libX11/src/GetWMCMapW.c
@@ -77,7 +77,7 @@ Status XGetWMColormapWindows (
return False;
if (actual_type != XA_WINDOW || actual_format != 32) {
- if (data) Xfree (data);
+ Xfree (data);
return False;
}
diff --git a/libX11/src/ImUtil.c b/libX11/src/ImUtil.c
index 4fc060cb8..0d996e8ec 100644
--- a/libX11/src/ImUtil.c
+++ b/libX11/src/ImUtil.c
@@ -434,8 +434,8 @@ Status XInitImage (XImage *image)
static int _XDestroyImage (XImage *ximage)
{
- if (ximage->data != NULL) Xfree(ximage->data);
- if (ximage->obdata != NULL) Xfree(ximage->obdata);
+ Xfree(ximage->data);
+ Xfree(ximage->obdata);
Xfree(ximage);
return 1;
}
diff --git a/libX11/src/InitExt.c b/libX11/src/InitExt.c
index 1d58e879f..1ad183bdf 100644
--- a/libX11/src/InitExt.c
+++ b/libX11/src/InitExt.c
@@ -52,7 +52,7 @@ XExtCodes *XInitExtension (
LockDisplay (dpy);
if (! (ext = Xcalloc (1, sizeof (_XExtension))) ||
! (ext->name = strdup(name))) {
- if (ext) Xfree(ext);
+ Xfree(ext);
UnlockDisplay(dpy);
return (XExtCodes *) NULL;
}
diff --git a/libX11/src/KeyBind.c b/libX11/src/KeyBind.c
index f64f116b8..d7c78b37e 100644
--- a/libX11/src/KeyBind.c
+++ b/libX11/src/KeyBind.c
@@ -271,12 +271,13 @@ _XKeyInitialize(
if (! keysyms) return 0;
LockDisplay(dpy);
- if (dpy->keysyms)
- Xfree (dpy->keysyms);
+
+ Xfree (dpy->keysyms);
dpy->keysyms = keysyms;
dpy->keysyms_per_keycode = per;
if (dpy->modifiermap)
ResetModMap(dpy);
+
UnlockDisplay(dpy);
}
if (!dpy->modifiermap)
@@ -929,8 +930,8 @@ XRebindKeysym (
((! (p->string = Xmalloc(nbytes))) && (nbytes > 0)) ||
((! (p->modifiers = Xmalloc(nb))) && (nb > 0))) {
if (p) {
- if (p->string) Xfree(p->string);
- if (p->modifiers) Xfree(p->modifiers);
+ Xfree(p->string);
+ Xfree(p->modifiers);
Xfree(p);
}
UnlockDisplay(dpy);
diff --git a/libX11/src/ListExt.c b/libX11/src/ListExt.c
index f40924df7..431ae6784 100644
--- a/libX11/src/ListExt.c
+++ b/libX11/src/ListExt.c
@@ -62,8 +62,8 @@ char **XListExtensions(
}
if ((!list) || (!ch)) {
- if (list) Xfree(list);
- if (ch) Xfree(ch);
+ Xfree(list);
+ Xfree(ch);
_XEatDataWords(dpy, rep.length);
UnlockDisplay(dpy);
SyncHandle();
diff --git a/libX11/src/ModMap.c b/libX11/src/ModMap.c
index 78d635bf5..a809aa291 100644
--- a/libX11/src/ModMap.c
+++ b/libX11/src/ModMap.c
@@ -50,7 +50,7 @@ XGetModifierMapping(register Display *dpy)
} else
res = NULL;
if ((! res) || (! res->modifiermap)) {
- if (res) Xfree(res);
+ Xfree(res);
res = (XModifierKeymap *) NULL;
_XEatDataWords(dpy, rep.length);
} else {
@@ -114,8 +114,7 @@ int
XFreeModifiermap(XModifierKeymap *map)
{
if (map) {
- if (map->modifiermap)
- Xfree(map->modifiermap);
+ Xfree(map->modifiermap);
Xfree(map);
}
return 1;
diff --git a/libX11/src/OpenDis.c b/libX11/src/OpenDis.c
index 607b5a077..35d9a58dc 100644
--- a/libX11/src/OpenDis.c
+++ b/libX11/src/OpenDis.c
@@ -591,8 +591,7 @@ void _XFreeDisplayStructure(Display *dpy)
while (dpy->ext_procs) {
_XExtension *ext = dpy->ext_procs;
dpy->ext_procs = ext->next;
- if (ext->name)
- Xfree (ext->name);
+ Xfree (ext->name);
Xfree (ext);
}
if (dpy->im_filters)
@@ -657,23 +656,17 @@ void _XFreeDisplayStructure(Display *dpy)
}
free(dpy->display_name);
- if (dpy->vendor)
- Xfree (dpy->vendor);
-
- if (dpy->buffer)
- Xfree (dpy->buffer);
- if (dpy->keysyms)
- Xfree (dpy->keysyms);
- if (dpy->xdefaults)
- Xfree (dpy->xdefaults);
- if (dpy->error_vec)
- Xfree (dpy->error_vec);
+
+ Xfree (dpy->vendor);
+ Xfree (dpy->buffer);
+ Xfree (dpy->keysyms);
+ Xfree (dpy->xdefaults);
+ Xfree (dpy->error_vec);
_XFreeExtData (dpy->ext_data);
- if (dpy->free_funcs)
- Xfree (dpy->free_funcs);
- if (dpy->scratch_buffer)
- Xfree (dpy->scratch_buffer);
+
+ Xfree (dpy->free_funcs);
+ Xfree (dpy->scratch_buffer);
FreeDisplayLock(dpy);
if (dpy->qfree) {
@@ -688,8 +681,7 @@ void _XFreeDisplayStructure(Display *dpy)
while (dpy->im_fd_info) {
struct _XConnectionInfo *conni = dpy->im_fd_info;
dpy->im_fd_info = conni->next;
- if (conni->watch_data)
- Xfree (conni->watch_data);
+ Xfree (conni->watch_data);
Xfree (conni);
}
if (dpy->conn_watchers) {
@@ -697,8 +689,8 @@ void _XFreeDisplayStructure(Display *dpy)
dpy->conn_watchers = watcher->next;
Xfree (watcher);
}
- if (dpy->filedes)
- Xfree (dpy->filedes);
+
+ Xfree (dpy->filedes);
_XFreeX11XCBStructure(dpy);
diff --git a/libX11/src/PutImage.c b/libX11/src/PutImage.c
index e6ac9a23f..de085bcde 100644
--- a/libX11/src/PutImage.c
+++ b/libX11/src/PutImage.c
@@ -740,8 +740,7 @@ SendXYImage(
bytes_per_src, bytes_per_line,
bytes_per_dest, req->height, half_order);
- if (extra)
- Xfree(extra);
+ Xfree(extra);
if (buf == dpy->bufptr)
dpy->bufptr += length;
@@ -793,8 +792,7 @@ SendZImage(
((req_xoffset == 0) ||
((req_yoffset + req->height) < (unsigned)image->height))) {
Data(dpy, (char *)src, length);
- if (shifted_src)
- Xfree(shifted_src);
+ Xfree(shifted_src);
return;
}
@@ -804,7 +802,7 @@ SendZImage(
else
if ((dest = (unsigned char *)
_XAllocScratch(dpy, length)) == NULL) {
- if (shifted_src) Xfree(shifted_src);
+ Xfree(shifted_src);
UnGetReq(PutImage);
return;
}
@@ -831,8 +829,7 @@ SendZImage(
else
_XSend(dpy, (char *)dest, length);
- if (shifted_src)
- Xfree(shifted_src);
+ Xfree(shifted_src);
}
static void
diff --git a/libX11/src/RdBitF.c b/libX11/src/RdBitF.c
index 7f6750d64..ec5db45ee 100644
--- a/libX11/src/RdBitF.c
+++ b/libX11/src/RdBitF.c
@@ -138,7 +138,7 @@ XReadBitmapFileData (
/* error cleanup and return macro */
#define RETURN(code) \
-{ if (bits) Xfree (bits); fclose (fstream); return code; }
+{ Xfree (bits); fclose (fstream); return code; }
while (fgets(line, MAX_SIZE, fstream)) {
if (strlen(line) == MAX_SIZE-1)
diff --git a/libX11/src/ScrResStr.c b/libX11/src/ScrResStr.c
index 0601c8644..4a5491a32 100644
--- a/libX11/src/ScrResStr.c
+++ b/libX11/src/ScrResStr.c
@@ -48,8 +48,7 @@ char *XScreenResourceString(Screen *screen)
(unsigned char **) &val) == Success) {
if ((actual_type == XA_STRING) && (actual_format == 8))
return val;
- if (val)
- Xfree(val);
+ Xfree(val);
}
return (char *)NULL;
}
diff --git a/libX11/src/StBytes.c b/libX11/src/StBytes.c
index ec6c2e295..d8fca17c2 100644
--- a/libX11/src/StBytes.c
+++ b/libX11/src/StBytes.c
@@ -74,7 +74,7 @@ char *XFetchBuffer (
*nbytes = nitems;
return((char *)data);
}
- if ((char *) data != NULL) Xfree (data);
+ Xfree (data);
return(NULL);
}
diff --git a/libX11/src/XlibInt.c b/libX11/src/XlibInt.c
index 15f94aa0a..3cd5ec4e9 100644
--- a/libX11/src/XlibInt.c
+++ b/libX11/src/XlibInt.c
@@ -418,8 +418,7 @@ _XUnregisterInternalConnection(
watch=watch->next, wd++) {
(*watch->fn) (dpy, watch->client_data, fd, False, wd);
}
- if (info_list->watch_data)
- Xfree (info_list->watch_data);
+ Xfree (info_list->watch_data);
Xfree (info_list);
break;
}
@@ -1502,8 +1501,9 @@ char *_XAllocScratch(
unsigned long nbytes)
{
if (nbytes > dpy->scratch_length) {
- if (dpy->scratch_buffer) Xfree (dpy->scratch_buffer);
- if ((dpy->scratch_buffer = Xmalloc(nbytes)))
+ Xfree (dpy->scratch_buffer);
+ dpy->scratch_buffer = Xmalloc(nbytes);
+ if (dpy->scratch_buffer)
dpy->scratch_length = nbytes;
else dpy->scratch_length = 0;
}
@@ -1531,8 +1531,8 @@ void _XFreeTemp(
char *buf,
unsigned long nbytes)
{
- if (dpy->scratch_buffer)
- Xfree(dpy->scratch_buffer);
+
+ Xfree(dpy->scratch_buffer);
dpy->scratch_buffer = buf;
dpy->scratch_length = nbytes;
}
diff --git a/libX11/src/xkb/XKBNames.c b/libX11/src/xkb/XKBNames.c
index 3f2fd39d7..5a3fb6f8d 100644
--- a/libX11/src/xkb/XKBNames.c
+++ b/libX11/src/xkb/XKBNames.c
@@ -778,9 +778,14 @@ XkbNoteNameChanges(XkbNameChangesPtr old,
{
int first, last, old_last, new_last;
- wanted &= new->changed;
- if ((old == NULL) || (new == NULL) || (wanted == 0))
+ if ((old == NULL) || (new == NULL))
return;
+
+ wanted &= new->changed;
+
+ if (wanted == 0)
+ return;
+
if (wanted & XkbKeyTypeNamesMask) {
if (old->changed & XkbKeyTypeNamesMask) {
new_last = (new->first_type + new->num_types - 1);
diff --git a/libX11/src/xlibi18n/lcUTF8.c b/libX11/src/xlibi18n/lcUTF8.c
index 930edcb18..045903a72 100644
--- a/libX11/src/xlibi18n/lcUTF8.c
+++ b/libX11/src/xlibi18n/lcUTF8.c
@@ -1016,7 +1016,7 @@ ucstocs1(
XPointer *args,
int num_args)
{
- ucs4_t const *src = (ucs4_t const *) *from;
+ ucs4_t const *src;
unsigned char *dst = (unsigned char *) *to;
int unconv_num = 0;
Utf8Conv *preferred_charsets = (Utf8Conv *) conv->state;
@@ -1028,6 +1028,8 @@ ucstocs1(
if (from == NULL || *from == NULL)
return 0;
+ src = (ucs4_t const *) *from;
+
count = charset_wctocs_exactly(preferred_charsets, &chosen_charset,
&chosen_side, conv, dst, *src, *to_left);
if (count < 1) {