xserver: Branch 'master' - 2 commits

Daniel Stone daniels at kemper.freedesktop.org
Fri Dec 8 21:31:58 EET 2006


 hw/xfree86/common/xf86Events.c |    2 --
 xkb/xkbUtils.c                 |   14 ++++++++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

New commits:
diff-tree ec84f72d077eaf2e7768a1f5398f65a5e1714d08 (from e59aeac1ff13ea53f44dba1ac7800f37f4532ca1)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Fri Dec 8 21:31:47 2006 +0200

    XkbCopyKeymap: always initialise map and preserve
    
    If we don't have map or preserve in the source map, make sure the
    destination is initialised to NULL, and freed if it's a valid type.

diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index 321bf2e..c9c5ed0 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -1144,6 +1144,11 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
                         memcpy(dtype->map, stype->map,
                                stype->map_count * sizeof(XkbKTMapEntryRec));
                     }
+                    else {
+                        if (dtype->map && i < dst->map->num_types)
+                            xfree(dtype->map);
+                        dtype->map = NULL;
+                    }
 
                     if (stype->preserve) {
                         if (stype->map_count != dtype->map_count &&
@@ -1168,17 +1173,22 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
                         memcpy(dtype->preserve, stype->preserve,
                                stype->map_count * sizeof(XkbModsRec));
                     }
+                    else {
+                        if (dtype->preserve && i < dst->map->num_types)
+                            xfree(dtype->preserve);
+                        dtype->preserve = NULL;
+                    }
 
                     dtype->map_count = stype->map_count;
                 }
                 else {
-                    if (dtype->map_count) {
+                    if (dtype->map_count && i < dst->map->num_types) {
                         if (dtype->map)
                             xfree(dtype->map);
                         if (dtype->preserve)
                             xfree(dtype->preserve);
-                        dtype->map_count = 0;
                     }
+                    dtype->map_count = 0;
                     dtype->map = NULL;
                     dtype->preserve = NULL;
                 }
diff-tree e59aeac1ff13ea53f44dba1ac7800f37f4532ca1 (from 729fca33a417ae3dfb180caf0ea8946ef9eee1df)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Wed Dec 6 23:44:06 2006 +0200

    xfree86: remove stray debug line

diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index 5469426..05e62f1 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -789,8 +789,6 @@ xf86ReleaseKeys(DeviceIntPtr pDev)
     xEvent ke;
     int i = 0, j = 0, nevents = 0;
 
-    ErrorF("releasekeys: called on device %s (%d)\n", pDev->name, pDev->id);
-
     if (!pDev || !pDev->key)
         return;
 



More information about the xorg-commit mailing list