aboutsummaryrefslogtreecommitdiffstats
path: root/src/xselect.c
diff options
context:
space:
mode:
authorAndreas Schwab <[email protected]>2005-02-17 12:50:08 +0000
committerAndreas Schwab <[email protected]>2005-02-17 12:50:08 +0000
commit31df61d66239245c68d85d1bb485539034782bec (patch)
tree66b9ae639b9987daccf3de10ca1503074c881b7e /src/xselect.c
parenta3db4b26919bd467a30b9658b5f84aec06b2b35e (diff)
(Fx_disown_selection_internal): Use union of struct
input_event and struct selection_input_event to avoid aliasing issues.
Diffstat (limited to 'src/xselect.c')
-rw-r--r--src/xselect.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/xselect.c b/src/xselect.c
index 8d8efd8db8..a49b6b89ee 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -2189,7 +2189,10 @@ Disowning it means there is no such selection. */)
{
Time timestamp;
Atom selection_atom;
- struct selection_input_event event;
+ union {
+ struct selection_input_event sie;
+ struct input_event ie;
+ } event;
Display *display;
struct x_display_info *dpyinfo;
struct frame *sf = SELECTED_FRAME ();
@@ -2217,10 +2220,10 @@ Disowning it means there is no such selection. */)
the selection owner to None. The NCD server does, the MIT Sun4 server
doesn't. So we synthesize one; this means we might get two, but
that's ok, because the second one won't have any effect. */
- SELECTION_EVENT_DISPLAY (&event) = display;
- SELECTION_EVENT_SELECTION (&event) = selection_atom;
- SELECTION_EVENT_TIME (&event) = timestamp;
- x_handle_selection_clear ((struct input_event *) &event);
+ SELECTION_EVENT_DISPLAY (&event.sie) = display;
+ SELECTION_EVENT_SELECTION (&event.sie) = selection_atom;
+ SELECTION_EVENT_TIME (&event.sie) = timestamp;
+ x_handle_selection_clear (&event.ie);
return Qt;
}