diff options
author | marha <marha@users.sourceforge.net> | 2010-09-11 09:26:35 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-09-11 09:26:35 +0000 |
commit | 35b29c19707341bbfa32f7f6136ce09e59cb332c (patch) | |
tree | a795242657a2b96a463a11774517472fa4c64953 /xorg-server/dix/inpututils.c | |
parent | ba6498fea6d935aff0856f9851cb47d5657952fa (diff) | |
parent | e172c89783326e2378e4793ff31a0f44210c5534 (diff) | |
download | vcxsrv-35b29c19707341bbfa32f7f6136ce09e59cb332c.tar.gz vcxsrv-35b29c19707341bbfa32f7f6136ce09e59cb332c.tar.bz2 vcxsrv-35b29c19707341bbfa32f7f6136ce09e59cb332c.zip |
svn merge ^/branches/released .
Diffstat (limited to 'xorg-server/dix/inpututils.c')
-rw-r--r-- | xorg-server/dix/inpututils.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/xorg-server/dix/inpututils.c b/xorg-server/dix/inpututils.c index 9e6ba0325..39e65064a 100644 --- a/xorg-server/dix/inpututils.c +++ b/xorg-server/dix/inpututils.c @@ -286,7 +286,7 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev, {
CARD8 keys_per_mod[8];
int max_keys_per_mod;
- KeyCode *modkeymap;
+ KeyCode *modkeymap = NULL;
int i, j, ret;
ret = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixGetAttrAccess);
@@ -310,18 +310,20 @@ int generate_modkeymap(ClientPtr client, DeviceIntPtr dev, }
}
- modkeymap = calloc(max_keys_per_mod * 8, sizeof(KeyCode));
- if (!modkeymap)
- return BadAlloc;
+ if (max_keys_per_mod != 0) {
+ modkeymap = calloc(max_keys_per_mod * 8, sizeof(KeyCode));
+ if (!modkeymap)
+ return BadAlloc;
- for (i = 0; i < 8; i++)
- keys_per_mod[i] = 0;
+ for (i = 0; i < 8; i++)
+ keys_per_mod[i] = 0;
- for (i = 8; i < MAP_LENGTH; i++) {
- for (j = 0; j < 8; j++) {
- if (dev->key->xkbInfo->desc->map->modmap[i] & (1 << j)) {
- modkeymap[(j * max_keys_per_mod) + keys_per_mod[j]] = i;
- keys_per_mod[j]++;
+ for (i = 8; i < MAP_LENGTH; i++) {
+ for (j = 0; j < 8; j++) {
+ if (dev->key->xkbInfo->desc->map->modmap[i] & (1 << j)) {
+ modkeymap[(j * max_keys_per_mod) + keys_per_mod[j]] = i;
+ keys_per_mod[j]++;
+ }
}
}
}
|