xserver: Branch 'master' - 3 commits

Peter Hutterer whot at kemper.freedesktop.org
Wed Dec 19 00:49:28 PST 2007


 Xext/dpmsstubs.c |    2 --
 Xi/getdctl.c     |    8 ++++----
 include/xkbsrv.h |    3 ++-
 3 files changed, 6 insertions(+), 7 deletions(-)

New commits:
commit 50e80c39870adfdc84fdbc00dddf1362117ad443
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Wed Dec 19 16:20:36 2007 +1030

    include: never overwrite realInputProc with enqueueInputProc. Bug #13511
    
    In some cases (triggered by a key repeat during a sync grab) XKB unwrapping
    can overwrite the device's realInputProc with the enqueueInputProc. When the
    grab is released and the events are replayed, we end up in an infinite loop.
    Each event is replayed and in replaying pushed to the end of the queue again.
    
    This fix is a hack only. It ensures that the realInputProc is never
    overwritten with the enqueueInputProc.
    
    This fixes Bug #13511 (https://bugs.freedesktop.org/show_bug.cgi?id=13511)
    (cherry picked from commit eace88989c3b65d5c20e9f37ea9b23c7c8e19335)

diff --git a/include/xkbsrv.h b/include/xkbsrv.h
index 6425e37..bf386e7 100644
--- a/include/xkbsrv.h
+++ b/include/xkbsrv.h
@@ -258,7 +258,8 @@ typedef struct
 	    device->public.processInputProc = proc; \
 	oldprocs->processInputProc = \
 	oldprocs->realInputProc = device->public.realInputProc; \
-	device->public.realInputProc = proc; \
+	if (proc != device->public.enqueueInputProc) \
+		device->public.realInputProc = proc; \
 	oldprocs->unwrapProc = device->unwrapProc; \
 	device->unwrapProc = unwrapproc;
 
commit d0308b64655360517d83e07e866d103c3f2b389d
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Wed Dec 19 18:18:10 2007 +1030

    Xi: specify correct struct when calculating size of GetDeviceControl reply.
    
    This doesn't change much, as the struct previously given has the same size as
    the ones now anyway. Still, we should be pendantic.
    
    Thanks to Simon Thum for reporting.

diff --git a/Xi/getdctl.c b/Xi/getdctl.c
index 6e1e3ef..c979959 100644
--- a/Xi/getdctl.c
+++ b/Xi/getdctl.c
@@ -265,19 +265,19 @@ ProcXGetDeviceControl(ClientPtr client)
         if (!dev->absolute)
 	    return BadMatch;
 
-        total_length = sizeof(xDeviceAbsCalibCtl);
+        total_length = sizeof(xDeviceAbsCalibState);
         break;
     case DEVICE_ABS_AREA:
         if (!dev->absolute)
 	    return BadMatch;
 
-        total_length = sizeof(xDeviceAbsAreaCtl);
+        total_length = sizeof(xDeviceAbsAreaState);
         break;
     case DEVICE_CORE:
-        total_length = sizeof(xDeviceCoreCtl);
+        total_length = sizeof(xDeviceCoreState);
         break;
     case DEVICE_ENABLE:
-        total_length = sizeof(xDeviceEnableCtl);
+        total_length = sizeof(xDeviceEnableState);
         break;
     default:
 	return BadValue;
commit 66b00029e587cec628d0041179a301e888277f8e
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Wed Dec 19 18:10:50 2007 +1030

    Xext: remove redefinition of Bool.
    
    Thanks to Simon Thum.

diff --git a/Xext/dpmsstubs.c b/Xext/dpmsstubs.c
index fad07bd..0f59d51 100644
--- a/Xext/dpmsstubs.c
+++ b/Xext/dpmsstubs.c
@@ -26,8 +26,6 @@ Equipment Corporation.
 
 ******************************************************************/
 
-typedef int Bool;
-
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif


More information about the xorg-commit mailing list