From 0f1fa85fe03a268c2b3b04978f3a533df1bf3414 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Fri, 11 Jul 2014 10:34:08 -0700 Subject: Use C99 named initializers to fill in events passed to XSendEvent Forces compiler to zero-fill unset fields in the struct (fixing bug 81236) and allows optimizer to order field initialization to best fit cache layout or other considerations. Before & after output of gcc -S on AMD64 shows insertion of "rep stosq" instructions to rapidly zero-fill structs. Signed-off-by: Alan Coopersmith Reviewed-by: Matthieu Herrb Backported-to-NX-by: Ulrich Sibiller --- nx-X11/lib/X11/Withdraw.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'nx-X11/lib/X11/Withdraw.c') diff --git a/nx-X11/lib/X11/Withdraw.c b/nx-X11/lib/X11/Withdraw.c index bca1f8d9b..9c2280234 100644 --- a/nx-X11/lib/X11/Withdraw.c +++ b/nx-X11/lib/X11/Withdraw.c @@ -67,16 +67,18 @@ Status XWithdrawWindow ( Window w, int screen) { - XUnmapEvent ev; - Window root = RootWindow (dpy, screen); - XUnmapWindow (dpy, w); - ev.type = UnmapNotify; - ev.event = root; - ev.window = w; - ev.from_configure = False; - return (XSendEvent (dpy, root, False, - SubstructureRedirectMask|SubstructureNotifyMask, - (XEvent *)&ev)); + { + Window root = RootWindow (dpy, screen); + XUnmapEvent ev = { + .type = UnmapNotify, + .event = root, + .window = w, + .from_configure = False + }; + return (XSendEvent (dpy, root, False, + SubstructureRedirectMask|SubstructureNotifyMask, + (XEvent *)&ev)); + } } -- cgit v1.2.3