[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libxi: Changes to 'upstream-unstable'



 configure.ac    |    2 +-
 src/XChgDCtl.c  |   13 ++++++++++++-
 src/XExtInt.c   |    2 +-
 src/XGtSelect.c |    4 ++++
 src/XStFocus.c  |    2 ++
 5 files changed, 20 insertions(+), 3 deletions(-)

New commits:
commit bf01e98979e6fa500f74d882c1b21746c60d5d31
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Wed Aug 1 05:16:45 2007 +0300

    XSetDeviceFocus: Add missing extension check
    
    Actually check for Xi existing before we try to do anything fancy.

diff --git a/src/XStFocus.c b/src/XStFocus.c
index 08578c8..e544126 100644
--- a/src/XStFocus.c
+++ b/src/XStFocus.c
@@ -72,6 +72,8 @@ XSetDeviceFocus(dpy, dev, focus, revert_to, time)
     XExtDisplayInfo *info = XInput_find_display(dpy);
 
     LockDisplay(dpy);
+    if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1)
+	return (NoSuchExtension);
 
     GetReq(SetDeviceFocus, req);
     req->reqType = info->codes->major_opcode;

commit 8f5f7e9d6fc288a5cc00df3a7fec44211cdbe8f4
Author: David Weinehall <tao@debian.org>
Date:   Wed Aug 1 05:12:21 2007 +0300

    XGetSelectedExtensionEvents: Still more locking bugs
    
    Fix a couple more return-without-unlocks.

diff --git a/src/XGtSelect.c b/src/XGtSelect.c
index 9f596fd..95d3c87 100644
--- a/src/XGtSelect.c
+++ b/src/XGtSelect.c
@@ -106,6 +106,8 @@ XGetSelectedExtensionEvents(dpy, w, this_client_count, this_client_list,
 					sizeof(XEventClass));
 	    if (!*this_client_list) {
 		_XEatData(dpy, (unsigned long)tlen + alen);
+                UnlockDisplay(dpy);
+                SyncHandle();
 		return (Success);
 	    }
 	    for (i = 0; i < *this_client_count; i++) {
@@ -122,6 +124,8 @@ XGetSelectedExtensionEvents(dpy, w, this_client_count, this_client_list,
 		Xfree((char *)*this_client_list);
 		*this_client_list = NULL;
 		_XEatData(dpy, (unsigned long)alen);
+                UnlockDisplay(dpy);
+                SyncHandle();
 		return (Success);
 	    }
 	    for (i = 0; i < *all_clients_count; i++) {

commit a07c3cc1eec0427a056414ef44ef6ee4204df383
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Wed Aug 1 03:03:44 2007 +0300

    XChangeDeviceControl: Fix completely broken locking
    
    Drop the display lock when we exit from XChangeDeviceControl(), instead of
    leaking it.

diff --git a/src/XChgDCtl.c b/src/XChgDCtl.c
index f7a537a..952164c 100644
--- a/src/XChgDCtl.c
+++ b/src/XChgDCtl.c
@@ -104,8 +104,11 @@ XChangeDeviceControl(dpy, dev, control, d)
 	    UnlockDisplay(dpy);
 	    SyncHandle();
 	    return (NoSuchExtension);
-	} else
+	} else {
+            UnlockDisplay(dpy);
+            SyncHandle();
 	    return (rep.status);
+        }
     }
     case DEVICE_ABS_CALIB:
     {
@@ -132,6 +135,8 @@ XChangeDeviceControl(dpy, dev, control, d)
             return NoSuchExtension;
         }
         else {
+            UnlockDisplay(dpy);
+            SyncHandle();
             return rep.status;
         }
     }
@@ -158,6 +163,8 @@ XChangeDeviceControl(dpy, dev, control, d)
             return NoSuchExtension;
         }
         else {
+            UnlockDisplay(dpy);
+            SyncHandle();
             return rep.status;
         }
     }
@@ -179,6 +186,8 @@ XChangeDeviceControl(dpy, dev, control, d)
             return NoSuchExtension;
         }
         else {
+            UnlockDisplay(dpy);
+            SyncHandle();
             return rep.status;
         }
     }
@@ -200,6 +209,8 @@ XChangeDeviceControl(dpy, dev, control, d)
             return NoSuchExtension;
         }
         else {
+            UnlockDisplay(dpy);
+            SyncHandle();
             return rep.status;
         }
     }

commit 7f1b5257b7eb0c873988c33453c110fc5f9996dd
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Wed Aug 1 01:59:17 2007 +0300

    Bump to 1.1.2

diff --git a/configure.ac b/configure.ac
index 1044ec2..2641313 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to create configure.
 
 AC_PREREQ([2.57])
 
-AC_INIT(libXi, 1.1.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
+AC_INIT(libXi, 1.1.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXi)
 AM_INIT_AUTOMAKE([dist-bzip2])
 AM_MAINTAINER_MODE
 

commit 257345a0500ef0b7cf8e56f19a8bf93721408673
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Wed Aug 1 01:37:05 2007 +0300

    DevicePresenceNotify: Don't make non-static function, static
    
    I wish that there was a better way to do this, but c'est la vie.  It's our
    exposed API, so we've just got to deal for now.

diff --git a/src/XExtInt.c b/src/XExtInt.c
index 8366104..10f728d 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
@@ -259,7 +259,7 @@ Ones(mask)
     return (((y + (y >> 3)) & 030707070707) % 077);
 }
 
-static int
+int
 _XiGetDevicePresenceNotifyEvent(Display * dpy)
 {
     XExtDisplayInfo *info = XInput_find_display(dpy);



Reply to: