summaryrefslogtreecommitdiff
path: root/mi
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-05-20 16:23:38 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-05-22 15:44:03 +1000
commitadd2defac7e59dcb355e5ba12b6de60861741d57 (patch)
treed519a5b4d0e63ab7f5bd0f34fab5d25eca0fae5a /mi
parent73c7398aafa050950ad614483fb0d5bdd2da97ca (diff)
Split the signal-handler's lastSlave out into a separate variable.
dev->u.lastSlave was not signal safe since it was accessed by the DIX and during signal handling. Replaced with: 'dev->last.slave' for the signal handler's lastSlave (used to generate DeviceChangedEvents), . 'dev->u.lastSlave' for the DIX lastSlave (currently only used in change_modmap) Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'mi')
-rw-r--r--mi/mieq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mi/mieq.c b/mi/mieq.c
index 08444e166..4b3d700ea 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -370,8 +370,11 @@ mieqProcessDeviceEvent(DeviceIntPtr dev,
{
handler(DequeueScreen(dev)->myNum, event, dev);
if (master)
+ {
+ master->u.lastSlave = dev;
handler(DequeueScreen(master)->myNum,
(InternalEvent*)masterEvents->event, master);
+ }
} else
{
/* process slave first, then master */