diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2014-07-11 10:34:08 -0700 |
---|---|---|
committer | Ulrich Sibiller <uli42@gmx.de> | 2016-10-19 21:40:29 +0200 |
commit | 0f1fa85fe03a268c2b3b04978f3a533df1bf3414 (patch) | |
tree | 63928b8d2d5fa5d13e3c610d19f394828096e041 /nx-X11/lib/X11/Iconify.c | |
parent | f20f91ee89607537dfc6bfaec05d18e9830bea13 (diff) | |
download | nx-libs-0f1fa85fe03a268c2b3b04978f3a533df1bf3414.tar.gz nx-libs-0f1fa85fe03a268c2b3b04978f3a533df1bf3414.tar.bz2 nx-libs-0f1fa85fe03a268c2b3b04978f3a533df1bf3414.zip |
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 <alan.coopersmith@oracle.com>
Reviewed-by: Matthieu Herrb <matthieu@herrb.eu>
Backported-to-NX-by: Ulrich Sibiller <uli42@gmx.de>
Diffstat (limited to 'nx-X11/lib/X11/Iconify.c')
-rw-r--r-- | nx-X11/lib/X11/Iconify.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/nx-X11/lib/X11/Iconify.c b/nx-X11/lib/X11/Iconify.c index 9e24c6b86..542f5885c 100644 --- a/nx-X11/lib/X11/Iconify.c +++ b/nx-X11/lib/X11/Iconify.c @@ -67,19 +67,23 @@ Status XIconifyWindow ( Window w, int screen) { - XClientMessageEvent ev; - Window root = RootWindow (dpy, screen); Atom prop; prop = XInternAtom (dpy, "WM_CHANGE_STATE", False); - if (prop == None) return False; + if (prop == None) + return False; + else { + XClientMessageEvent ev = { + .type = ClientMessage, + .window = w, + .message_type = prop, + .format = 32, + .data.l[0] = IconicState + }; + Window root = RootWindow (dpy, screen); - ev.type = ClientMessage; - ev.window = w; - ev.message_type = prop; - ev.format = 32; - ev.data.l[0] = IconicState; - return (XSendEvent (dpy, root, False, - SubstructureRedirectMask|SubstructureNotifyMask, - (XEvent *)&ev)); + return (XSendEvent (dpy, root, False, + SubstructureRedirectMask|SubstructureNotifyMask, + (XEvent *)&ev)); + } } |