Module Name: xsrc
Committed By: mrg
Date: Mon Jul 8 22:59:17 UTC 2019
Modified Files:
xsrc/external/mit/libX11/dist/nls/en_US.UTF-8: Compose.pre
xsrc/external/mit/libX11/dist/src: Font.c FontNames.c GetFPath.c
ListExt.c ModMap.c XlibInt.c
xsrc/external/mit/libX11/dist/src/xkb: XKBMAlloc.c
xsrc/external/mit/libX11/dist/src/xlibi18n: XlcDL.c
xsrc/external/mit/libXi/dist/src: XIPassiveGrab.c
Removed Files:
xsrc/external/mit/libX11/dist: README
xsrc/external/mit/libX11/dist/man/xkb: XkbAllocGeomOverlayKey.man
xsrc/external/mit/libXi/dist: README
Log Message:
merge libX11 1.6.8 and libXi 1.7.10.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.3 -r0 xsrc/external/mit/libX11/dist/README
cvs rdiff -u -r1.1.1.3 -r0 \
xsrc/external/mit/libX11/dist/man/xkb/XkbAllocGeomOverlayKey.man
cvs rdiff -u -r1.4 -r1.5 \
xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre
cvs rdiff -u -r1.5 -r1.6 xsrc/external/mit/libX11/dist/src/Font.c
cvs rdiff -u -r1.7 -r1.8 xsrc/external/mit/libX11/dist/src/FontNames.c \
xsrc/external/mit/libX11/dist/src/ModMap.c
cvs rdiff -u -r1.6 -r1.7 xsrc/external/mit/libX11/dist/src/GetFPath.c \
xsrc/external/mit/libX11/dist/src/ListExt.c
cvs rdiff -u -r1.10 -r1.11 xsrc/external/mit/libX11/dist/src/XlibInt.c
cvs rdiff -u -r1.3 -r1.4 xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c
cvs rdiff -u -r1.8 -r1.9 xsrc/external/mit/libX11/dist/src/xlibi18n/XlcDL.c
cvs rdiff -u -r1.1.1.2 -r0 xsrc/external/mit/libXi/dist/README
cvs rdiff -u -r1.5 -r1.6 xsrc/external/mit/libXi/dist/src/XIPassiveGrab.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre
diff -u xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre:1.4 xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre:1.5
--- xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre:1.4 Tue Oct 4 22:04:39 2016
+++ xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre Mon Jul 8 22:59:16 2019
@@ -190,6 +190,14 @@ XCOMM "₪" U20aa NEW SHEQEL SIGN
<Multi_key> <equal> <Cyrillic_ES> : "€" EuroSign # EURO SIGN
<Multi_key> <Cyrillic_IE> <equal> : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <Cyrillic_IE> : "€" EuroSign # EURO SIGN
+<Multi_key> <P> <equal> : "₽" U20bd # ROUBLE SIGN
+<Multi_key> <p> <equal> : "₽" U20bd # ROUBLE SIGN
+<Multi_key> <equal> <P> : "₽" U20bd # ROUBLE SIGN
+<Multi_key> <equal> <p> : "₽" U20bd # ROUBLE SIGN
+<Multi_key> <Cyrillic_ZE> <equal> : "₽" U20bd # ROUBLE SIGN
+<Multi_key> <Cyrillic_ze> <equal> : "₽" U20bd # ROUBLE SIGN
+<Multi_key> <equal> <Cyrillic_ZE> : "₽" U20bd # ROUBLE SIGN
+<Multi_key> <equal> <Cyrillic_ze> : "₽" U20bd # ROUBLE SIGN
XCOMM "₭" U20ad KIP SIGN
XCOMM "₮" U20ae TUGRIK SIGN
XCOMM "₯" U20af DRACHMA SIGN
Index: xsrc/external/mit/libX11/dist/src/Font.c
diff -u xsrc/external/mit/libX11/dist/src/Font.c:1.5 xsrc/external/mit/libX11/dist/src/Font.c:1.6
--- xsrc/external/mit/libX11/dist/src/Font.c:1.5 Tue Oct 4 22:04:39 2016
+++ xsrc/external/mit/libX11/dist/src/Font.c Mon Jul 8 22:59:16 2019
@@ -31,6 +31,7 @@ authorization from the X Consortium and
#include <config.h>
#endif
#include "Xlibint.h"
+#include "reallocarray.h"
#include <limits.h>
#if defined(XF86BIGFONT)
@@ -245,8 +246,8 @@ _XQueryFont (
/* nFontProps is a CARD16 */
nbytes = reply.nFontProps * SIZEOF(xFontProp);
if ((nbytes >> 2) <= reply_left) {
- size_t pbytes = reply.nFontProps * sizeof(XFontProp);
- fs->properties = Xmalloc (pbytes);
+ fs->properties = Xmallocarray (reply.nFontProps,
+ sizeof(XFontProp));
}
if (! fs->properties) {
Xfree(fs);
@@ -266,8 +267,8 @@ _XQueryFont (
if (reply.nCharInfos < (INT_MAX / sizeof(XCharStruct))) {
nbytes = reply.nCharInfos * SIZEOF(xCharInfo);
if ((nbytes >> 2) <= reply_left) {
- size_t cibytes = reply.nCharInfos * sizeof(XCharStruct);
- fs->per_char = Xmalloc (cibytes);
+ fs->per_char = Xmallocarray (reply.nCharInfos,
+ sizeof(XCharStruct));
}
}
if (! fs->per_char) {
@@ -489,8 +490,8 @@ _XF86BigfontQueryFont (
/* nFontProps is a CARD16 */
nbytes = reply.nFontProps * SIZEOF(xFontProp);
if ((nbytes >> 2) <= reply_left) {
- size_t pbytes = reply.nFontProps * sizeof(XFontProp);
- fs->properties = Xmalloc (pbytes);
+ fs->properties = Xmallocarray (reply.nFontProps,
+ sizeof(XFontProp));
}
if (! fs->properties) {
Xfree(fs);
@@ -529,7 +530,8 @@ _XF86BigfontQueryFont (
_XEatDataWords(dpy, reply_left);
return (XFontStruct *)NULL;
}
- if (! (fs->per_char = Xmalloc (reply.nCharInfos * sizeof(XCharStruct)))) {
+ if (! (fs->per_char = Xmallocarray (reply.nCharInfos,
+ sizeof(XCharStruct)))) {
Xfree(pUniqCI);
Xfree(fs->properties);
Xfree(fs);
Index: xsrc/external/mit/libX11/dist/src/FontNames.c
diff -u xsrc/external/mit/libX11/dist/src/FontNames.c:1.7 xsrc/external/mit/libX11/dist/src/FontNames.c:1.8
--- xsrc/external/mit/libX11/dist/src/FontNames.c:1.7 Tue Aug 28 05:52:12 2018
+++ xsrc/external/mit/libX11/dist/src/FontNames.c Mon Jul 8 22:59:16 2019
@@ -29,6 +29,7 @@ in this Software without prior written a
#include <config.h>
#endif
#include "Xlibint.h"
+#include "reallocarray.h"
#include <limits.h>
char **
@@ -66,7 +67,7 @@ int *actualCount) /* RETURN */
}
if (rep.nFonts) {
- flist = Xmalloc (rep.nFonts * sizeof(char *));
+ flist = Xmallocarray (rep.nFonts, sizeof(char *));
if (rep.length > 0 && rep.length < (INT_MAX >> 2)) {
rlen = rep.length << 2;
ch = Xmalloc(rlen + 1);
Index: xsrc/external/mit/libX11/dist/src/ModMap.c
diff -u xsrc/external/mit/libX11/dist/src/ModMap.c:1.7 xsrc/external/mit/libX11/dist/src/ModMap.c:1.8
--- xsrc/external/mit/libX11/dist/src/ModMap.c:1.7 Tue Aug 28 05:52:12 2018
+++ xsrc/external/mit/libX11/dist/src/ModMap.c Mon Jul 8 22:59:16 2019
@@ -28,6 +28,7 @@ in this Software without prior written a
#include <config.h>
#endif
#include "Xlibint.h"
+#include "reallocarray.h"
#include <limits.h>
XModifierKeymap *
@@ -100,7 +101,7 @@ XNewModifiermap(int keyspermodifier)
if (res) {
res->max_keypermod = keyspermodifier;
res->modifiermap = (keyspermodifier > 0 ?
- Xmalloc(8 * keyspermodifier)
+ Xmallocarray(keyspermodifier, 8)
: (KeyCode *) NULL);
if (keyspermodifier && (res->modifiermap == NULL)) {
Xfree(res);
Index: xsrc/external/mit/libX11/dist/src/GetFPath.c
diff -u xsrc/external/mit/libX11/dist/src/GetFPath.c:1.6 xsrc/external/mit/libX11/dist/src/GetFPath.c:1.7
--- xsrc/external/mit/libX11/dist/src/GetFPath.c:1.6 Tue Aug 28 05:52:12 2018
+++ xsrc/external/mit/libX11/dist/src/GetFPath.c Mon Jul 8 22:59:16 2019
@@ -28,6 +28,7 @@ in this Software without prior written a
#include <config.h>
#endif
#include "Xlibint.h"
+#include "reallocarray.h"
#include <limits.h>
char **XGetFontPath(
@@ -49,7 +50,7 @@ char **XGetFontPath(
(void) _XReply (dpy, (xReply *) &rep, 0, xFalse);
if (rep.nPaths) {
- flist = Xmalloc(rep.nPaths * sizeof (char *));
+ flist = Xmallocarray(rep.nPaths, sizeof (char *));
if (rep.length < (INT_MAX >> 2)) {
nbytes = (unsigned long) rep.length << 2;
ch = Xmalloc (nbytes + 1);
Index: xsrc/external/mit/libX11/dist/src/ListExt.c
diff -u xsrc/external/mit/libX11/dist/src/ListExt.c:1.6 xsrc/external/mit/libX11/dist/src/ListExt.c:1.7
--- xsrc/external/mit/libX11/dist/src/ListExt.c:1.6 Tue Aug 28 05:52:12 2018
+++ xsrc/external/mit/libX11/dist/src/ListExt.c Mon Jul 8 22:59:16 2019
@@ -28,6 +28,7 @@ in this Software without prior written a
#include <config.h>
#endif
#include "Xlibint.h"
+#include "reallocarray.h"
#include <limits.h>
char **XListExtensions(
@@ -54,7 +55,7 @@ char **XListExtensions(
}
if (rep.nExtensions) {
- list = Xmalloc (rep.nExtensions * sizeof (char *));
+ list = Xmallocarray (rep.nExtensions, sizeof (char *));
if (rep.length > 0 && rep.length < (INT_MAX >> 2)) {
rlen = rep.length << 2;
ch = Xmalloc (rlen + 1);
Index: xsrc/external/mit/libX11/dist/src/XlibInt.c
diff -u xsrc/external/mit/libX11/dist/src/XlibInt.c:1.10 xsrc/external/mit/libX11/dist/src/XlibInt.c:1.11
--- xsrc/external/mit/libX11/dist/src/XlibInt.c:1.10 Tue Aug 28 05:52:12 2018
+++ xsrc/external/mit/libX11/dist/src/XlibInt.c Mon Jul 8 22:59:16 2019
@@ -39,6 +39,7 @@ from The Open Group.
#endif
#include "Xlibint.h"
#include "Xprivate.h"
+#include "reallocarray.h"
#include <X11/Xpoll.h>
#include <assert.h>
#include <stdio.h>
@@ -46,9 +47,28 @@ from The Open Group.
#include <direct.h>
#endif
+/* Needed for FIONREAD on Solaris */
+#ifdef HAVE_SYS_FILIO_H
+#include <sys/filio.h>
+#endif
+
+/* Needed for FIONREAD on Cygwin */
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+/* Needed for ioctl() on Solaris */
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
#ifdef XTHREADS
#include "locking.h"
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
+
/* these pointers get initialized by XInitThreads */
LockInfoPtr _Xglobal_lock = NULL;
void (*_XCreateMutex_fn)(LockInfoPtr) = NULL;
@@ -349,7 +369,7 @@ _XRegisterInternalConnection(
new_conni = Xmalloc(sizeof(struct _XConnectionInfo));
if (!new_conni)
return 0;
- new_conni->watch_data = Xmalloc(dpy->watcher_count * sizeof(XPointer));
+ new_conni->watch_data = Xmallocarray(dpy->watcher_count, sizeof(XPointer));
if (!new_conni->watch_data) {
Xfree(new_conni);
return 0;
@@ -435,7 +455,7 @@ XInternalConnectionNumbers(
count = 0;
for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next)
count++;
- fd_list = Xmalloc (count * sizeof(int));
+ fd_list = Xmallocarray (count, sizeof(int));
if (!fd_list) {
UnlockDisplay(dpy);
return 0;
@@ -508,8 +528,8 @@ XAddConnectionWatch(
/* allocate new watch data */
for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next) {
- wd_array = Xrealloc(info_list->watch_data,
- (dpy->watcher_count + 1) * sizeof(XPointer));
+ wd_array = Xreallocarray(info_list->watch_data,
+ dpy->watcher_count + 1, sizeof(XPointer));
if (!wd_array) {
UnlockDisplay(dpy);
return 0;
@@ -1233,6 +1253,21 @@ _XWireToEvent(
return(True);
}
+static int
+SocketBytesReadable(Display *dpy)
+{
+ int bytes = 0, last_error;
+#ifdef WIN32
+ last_error = WSAGetLastError();
+ ioctlsocket(ConnectionNumber(dpy), FIONREAD, &bytes);
+ WSASetLastError(last_error);
+#else
+ last_error = errno;
+ ioctl(ConnectionNumber(dpy), FIONREAD, &bytes);
+ errno = last_error;
+#endif
+ return bytes;
+}
/*
* _XDefaultIOError - Default fatal system error reporting routine. Called
@@ -1241,25 +1276,35 @@ _XWireToEvent(
_X_NORETURN int _XDefaultIOError(
Display *dpy)
{
- if (ECHECK(EPIPE)) {
- (void) fprintf (stderr,
- "X connection to %s broken (explicit kill or server shutdown).\r\n",
- DisplayString (dpy));
+ int killed = ECHECK(EPIPE);
+
+ /*
+ * If the socket was closed on the far end, the final recvmsg in
+ * xcb will have thrown EAGAIN because we're non-blocking. Detect
+ * this to get the more informative error message.
+ */
+ if (ECHECK(EAGAIN) && SocketBytesReadable(dpy) <= 0)
+ killed = True;
+
+ if (killed) {
+ fprintf (stderr,
+ "X connection to %s broken (explicit kill or server shutdown).\r\n",
+ DisplayString (dpy));
} else {
- (void) fprintf (stderr,
- "XIO: fatal IO error %d (%s) on X server \"%s\"\r\n",
+ fprintf (stderr,
+ "XIO: fatal IO error %d (%s) on X server \"%s\"\r\n",
#ifdef WIN32
- WSAGetLastError(), strerror(WSAGetLastError()),
+ WSAGetLastError(), strerror(WSAGetLastError()),
#else
- errno, strerror (errno),
+ errno, strerror (errno),
#endif
- DisplayString (dpy));
- (void) fprintf (stderr,
- " after %lu requests (%lu known processed) with %d events remaining.\r\n",
- NextRequest(dpy) - 1, LastKnownRequestProcessed(dpy),
- QLength(dpy));
+ DisplayString (dpy));
+ fprintf (stderr,
+ " after %lu requests (%lu known processed) with %d events remaining.\r\n",
+ NextRequest(dpy) - 1, LastKnownRequestProcessed(dpy),
+ QLength(dpy));
+ }
- }
exit(1);
/*NOTREACHED*/
}
Index: xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c
diff -u xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c:1.3 xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c:1.4
--- xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c:1.3 Sun Jul 19 08:13:11 2015
+++ xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c Mon Jul 8 22:59:16 2019
@@ -69,25 +69,17 @@ XkbAllocClientMap(XkbDescPtr xkb, unsign
if ((which & XkbKeyTypesMask) && (nTotalTypes > 0)) {
if (map->types == NULL) {
- map->types = _XkbTypedCalloc(nTotalTypes, XkbKeyTypeRec);
- if (map->types == NULL)
- return BadAlloc;
- map->num_types = 0;
- map->size_types = nTotalTypes;
+ map->num_types = map->size_types = 0;
}
- else if (map->size_types < nTotalTypes) {
- XkbKeyTypeRec *prev_types = map->types;
+ if ((map->types == NULL) || (map->size_types < nTotalTypes)) {
+ _XkbResizeArray(map->types, map->size_types, nTotalTypes,
+ XkbKeyTypeRec);
- map->types =
- _XkbTypedRealloc(map->types, nTotalTypes, XkbKeyTypeRec);
if (map->types == NULL) {
- _XkbFree(prev_types);
map->num_types = map->size_types = 0;
return BadAlloc;
}
map->size_types = nTotalTypes;
- bzero(&map->types[map->num_types],
- ((map->size_types - map->num_types) * sizeof(XkbKeyTypeRec)));
}
}
if (which & XkbKeySymsMask) {
@@ -164,26 +156,20 @@ XkbAllocServerMap(XkbDescPtr xkb, unsign
if (nNewActions < 1)
nNewActions = 1;
if (map->acts == NULL) {
- map->acts = _XkbTypedCalloc((nNewActions + 1), XkbAction);
- if (map->acts == NULL)
- return BadAlloc;
map->num_acts = 1;
- map->size_acts = nNewActions + 1;
+ map->size_acts = 0;
}
- else if ((map->size_acts - map->num_acts) < nNewActions) {
+ if ((map->acts == NULL) ||
+ ((map->size_acts - map->num_acts) < nNewActions)) {
unsigned need;
- XkbAction *prev_acts = map->acts;
need = map->num_acts + nNewActions;
- map->acts = _XkbTypedRealloc(map->acts, need, XkbAction);
+ _XkbResizeArray(map->acts, map->size_acts, need, XkbAction);
if (map->acts == NULL) {
- _XkbFree(prev_acts);
map->num_acts = map->size_acts = 0;
return BadAlloc;
}
map->size_acts = need;
- bzero(&map->acts[map->num_acts],
- ((map->size_acts - map->num_acts) * sizeof(XkbAction)));
}
if (map->key_acts == NULL) {
i = xkb->max_key_code + 1;
@@ -390,24 +376,18 @@ XkbResizeKeyType(XkbDescPtr xkb,
type->map_count = 0;
}
else {
- XkbKTMapEntryRec *prev_map = type->map;
-
if ((map_count > type->map_count) || (type->map == NULL))
- type->map =
- _XkbTypedRealloc(type->map, map_count, XkbKTMapEntryRec);
+ _XkbResizeArray(type->map, type->map_count, map_count,
+ XkbKTMapEntryRec);
if (!type->map) {
- _XkbFree(prev_map);
return BadAlloc;
}
if (want_preserve) {
- XkbModsRec *prev_preserve = type->preserve;
-
if ((map_count > type->map_count) || (type->preserve == NULL)) {
- type->preserve = _XkbTypedRealloc(type->preserve, map_count,
- XkbModsRec);
+ _XkbResizeArray(type->preserve, type->map_count, map_count,
+ XkbModsRec);
}
if (!type->preserve) {
- _XkbFree(prev_preserve);
return BadAlloc;
}
}
@@ -419,12 +399,8 @@ XkbResizeKeyType(XkbDescPtr xkb,
}
if ((new_num_lvls > type->num_levels) || (type->level_names == NULL)) {
- Atom *prev_level_names = type->level_names;
-
- type->level_names =
- _XkbTypedRealloc(type->level_names, new_num_lvls, Atom);
+ _XkbResizeArray(type->level_names, type->num_levels, new_num_lvls, Atom);
if (!type->level_names) {
- _XkbFree(prev_level_names);
return BadAlloc;
}
}
@@ -728,16 +704,11 @@ XkbChangeKeycodeRange(XkbDescPtr xkb,
tmp = maxKC - xkb->max_key_code;
if (xkb->map) {
if (xkb->map->key_sym_map) {
- XkbSymMapRec *prev_key_sym_map = xkb->map->key_sym_map;
-
- xkb->map->key_sym_map = _XkbTypedRealloc(xkb->map->key_sym_map,
- (maxKC + 1), XkbSymMapRec);
+ _XkbResizeArray(xkb->map->key_sym_map, xkb->max_key_code + 1,
+ (maxKC + 1), XkbSymMapRec);
if (!xkb->map->key_sym_map) {
- _XkbFree(prev_key_sym_map);
return BadAlloc;
}
- bzero((char *) &xkb->map->key_sym_map[xkb->max_key_code],
- tmp * sizeof(XkbSymMapRec));
if (changes) {
changes->map.changed = _ExtendRange(changes->map.changed,
XkbKeySymsMask, maxKC,
@@ -746,15 +717,11 @@ XkbChangeKeycodeRange(XkbDescPtr xkb,
}
}
if (xkb->map->modmap) {
- unsigned char *prev_modmap = xkb->map->modmap;
-
- xkb->map->modmap = _XkbTypedRealloc(xkb->map->modmap,
- (maxKC + 1), unsigned char);
+ _XkbResizeArray(xkb->map->modmap, xkb->max_key_code + 1,
+ (maxKC + 1), unsigned char);
if (!xkb->map->modmap) {
- _XkbFree(prev_modmap);
return BadAlloc;
}
- bzero((char *) &xkb->map->modmap[xkb->max_key_code], tmp);
if (changes) {
changes->map.changed = _ExtendRange(changes->map.changed,
XkbModifierMapMask, maxKC,
@@ -765,17 +732,11 @@ XkbChangeKeycodeRange(XkbDescPtr xkb,
}
if (xkb->server) {
if (xkb->server->behaviors) {
- XkbBehavior *prev_behaviors = xkb->server->behaviors;
-
- xkb->server->behaviors =
- _XkbTypedRealloc(xkb->server->behaviors, (maxKC + 1),
- XkbBehavior);
+ _XkbResizeArray(xkb->server->behaviors, xkb->max_key_code + 1,
+ (maxKC + 1), XkbBehavior);
if (!xkb->server->behaviors) {
- _XkbFree(prev_behaviors);
return BadAlloc;
}
- bzero((char *) &xkb->server->behaviors[xkb->max_key_code],
- tmp * sizeof(XkbBehavior));
if (changes) {
changes->map.changed = _ExtendRange(changes->map.changed,
XkbKeyBehaviorsMask, maxKC,
@@ -784,16 +745,11 @@ XkbChangeKeycodeRange(XkbDescPtr xkb,
}
}
if (xkb->server->key_acts) {
- unsigned short *prev_key_acts = xkb->server->key_acts;
-
- xkb->server->key_acts = _XkbTypedRealloc(xkb->server->key_acts,
- (maxKC + 1), unsigned short);
+ _XkbResizeArray(xkb->server->key_acts, xkb->max_key_code + 1,
+ (maxKC + 1), unsigned short);
if (!xkb->server->key_acts) {
- _XkbFree(prev_key_acts);
return BadAlloc;
}
- bzero((char *) &xkb->server->key_acts[xkb->max_key_code],
- tmp * sizeof(unsigned short));
if (changes) {
changes->map.changed = _ExtendRange(changes->map.changed,
XkbKeyActionsMask, maxKC,
@@ -802,16 +758,11 @@ XkbChangeKeycodeRange(XkbDescPtr xkb,
}
}
if (xkb->server->vmodmap) {
- unsigned short *prev_vmodmap = xkb->server->vmodmap;
-
- xkb->server->vmodmap = _XkbTypedRealloc(xkb->server->vmodmap,
- (maxKC + 1), unsigned short);
+ _XkbResizeArray(xkb->server->vmodmap, xkb->max_key_code + 1,
+ (maxKC + 1), unsigned short);
if (!xkb->server->vmodmap) {
- _XkbFree(prev_vmodmap);
return BadAlloc;
}
- bzero((char *) &xkb->server->vmodmap[xkb->max_key_code],
- tmp * sizeof(unsigned short));
if (changes) {
changes->map.changed = _ExtendRange(changes->map.changed,
XkbVirtualModMapMask, maxKC,
@@ -821,16 +772,11 @@ XkbChangeKeycodeRange(XkbDescPtr xkb,
}
}
if ((xkb->names) && (xkb->names->keys)) {
- XkbKeyNameRec *prev_keys = xkb->names->keys;
-
- xkb->names->keys = _XkbTypedRealloc(xkb->names->keys,
- (maxKC + 1), XkbKeyNameRec);
+ _XkbResizeArray(xkb->names->keys, xkb->max_key_code + 1,
+ (maxKC + 1), XkbKeyNameRec);
if (!xkb->names->keys) {
- _XkbFree(prev_keys);
return BadAlloc;
}
- bzero((char *) &xkb->names->keys[xkb->max_key_code],
- tmp * sizeof(XkbKeyNameRec));
if (changes) {
changes->names.changed = _ExtendRange(changes->names.changed,
XkbKeyNamesMask, maxKC,
Index: xsrc/external/mit/libX11/dist/src/xlibi18n/XlcDL.c
diff -u xsrc/external/mit/libX11/dist/src/xlibi18n/XlcDL.c:1.8 xsrc/external/mit/libX11/dist/src/xlibi18n/XlcDL.c:1.9
--- xsrc/external/mit/libX11/dist/src/xlibi18n/XlcDL.c:1.8 Tue Oct 4 22:04:39 2016
+++ xsrc/external/mit/libX11/dist/src/xlibi18n/XlcDL.c Mon Jul 8 22:59:16 2019
@@ -85,6 +85,7 @@ Sun Microsystems, Inc. or its licensors
#include "Xlibint.h"
#include "XlcPublic.h"
#include "XlcPubI.h"
+#include "reallocarray.h"
#define XI18N_DLREL 2
@@ -185,7 +186,7 @@ resolve_object(char *path, const char *l
if (lc_len == 0) { /* True only for the 1st time */
lc_len = OBJECT_INIT_LEN;
- xi18n_objects_list = Xmalloc(sizeof(XI18NObjectsListRec) * lc_len);
+ xi18n_objects_list = Xmallocarray(lc_len, sizeof(XI18NObjectsListRec));
if (!xi18n_objects_list) return;
}
snprintf(filename, sizeof(filename), "%s/%s", path, "XI18N_OBJS");
@@ -207,8 +208,9 @@ resolve_object(char *path, const char *l
if (lc_count == lc_len) {
int new_len = lc_len + OBJECT_INC_LEN;
- XI18NObjectsListRec *tmp = Xrealloc(xi18n_objects_list,
- sizeof(XI18NObjectsListRec) * new_len);
+ XI18NObjectsListRec *tmp =
+ Xreallocarray(xi18n_objects_list, new_len,
+ sizeof(XI18NObjectsListRec));
if (tmp == NULL)
goto done;
xi18n_objects_list = tmp;
Index: xsrc/external/mit/libXi/dist/src/XIPassiveGrab.c
diff -u xsrc/external/mit/libXi/dist/src/XIPassiveGrab.c:1.5 xsrc/external/mit/libXi/dist/src/XIPassiveGrab.c:1.6
--- xsrc/external/mit/libXi/dist/src/XIPassiveGrab.c:1.5 Wed Jul 22 02:23:01 2015
+++ xsrc/external/mit/libXi/dist/src/XIPassiveGrab.c Mon Jul 8 22:59:17 2019
@@ -38,7 +38,8 @@ _XIPassiveGrabDevice(Display* dpy, int d
Window grab_window, Cursor cursor,
int grab_mode, int paired_device_mode,
Bool owner_events, XIEventMask *mask,
- int num_modifiers, XIGrabModifiers *modifiers_inout)
+ int num_modifiers, XIGrabModifiers *modifiers_inout,
+ Time time)
{
xXIPassiveGrabDeviceReq *req;
xXIPassiveGrabDeviceReply reply;
@@ -74,6 +75,7 @@ _XIPassiveGrabDevice(Display* dpy, int d
req->num_modifiers = num_modifiers;
req->mask_len = (mask->mask_len + 3)/4;
req->grab_type = grabtype;
+ req->time = time;
len = req->mask_len + num_modifiers;
SetReqLen(req, len, len);
@@ -118,7 +120,7 @@ XIGrabButton(Display* dpy, int deviceid,
return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeButton, button,
grab_window, cursor, grab_mode,
paired_device_mode, owner_events, mask,
- num_modifiers, modifiers_inout);
+ num_modifiers, modifiers_inout, CurrentTime);
}
int
@@ -130,7 +132,7 @@ XIGrabKeycode(Display* dpy, int deviceid
return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeKeycode, keycode,
grab_window, None, grab_mode, paired_device_mode,
owner_events, mask, num_modifiers,
- modifiers_inout);
+ modifiers_inout, CurrentTime);
}
int
@@ -142,7 +144,7 @@ XIGrabEnter(Display *dpy, int deviceid,
return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeEnter, 0,
grab_window, cursor, grab_mode, paired_device_mode,
owner_events, mask, num_modifiers,
- modifiers_inout);
+ modifiers_inout, CurrentTime);
}
int
@@ -153,7 +155,7 @@ XIGrabFocusIn(Display *dpy, int deviceid
return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeFocusIn, 0,
grab_window, None, grab_mode, paired_device_mode,
owner_events, mask, num_modifiers,
- modifiers_inout);
+ modifiers_inout, CurrentTime);
}
int
@@ -172,7 +174,7 @@ XIGrabTouchBegin(Display *dpy, int devic
return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeTouchBegin, 0,
grab_window, None, XIGrabModeTouch,
GrabModeAsync, owner_events, mask,
- num_modifiers, modifiers_inout);
+ num_modifiers, modifiers_inout, CurrentTime);
}