On Tue, Jul 27, 2010 at 03:09:49PM +0300, Pauli Nieminen wrote: > Caller quarantines that changes pointer is valid. ^^ "guarantees"? this is a bad description IMO. for better or worse, XkbUpdateKeyTypesFromCore is _X_EXPORT and could thus be called from a module, not just from the single place in the tree. if changes was NULL however, the server would segfault a few lines below anyway since we unconditionally dereference changes. This should be in the commit message.
Cheers, Peter > Signed-off-by: Pauli Nieminen <ext-pauli.niemi...@nokia.com> > --- > xkb/xkbUtils.c | 5 +---- > 1 files changed, 1 insertions(+), 4 deletions(-) > > diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c > index 14dc784..31aff93 100644 > --- a/xkb/xkbUtils.c > +++ b/xkb/xkbUtils.c > @@ -223,7 +223,6 @@ XkbDescPtr xkb; > unsigned key,nG,explicit; > int types[XkbNumKbdGroups]; > KeySym tsyms[XkbMaxSymsPerKey],*syms; > -XkbMapChangesPtr mc; > > xkb= pXDev->key->xkbInfo->desc; > if (first+num-1>xkb->max_key_code) { > @@ -231,8 +230,6 @@ XkbMapChangesPtr mc; > num= xkb->max_key_code-first+1; > } > > - mc= (changes?(&changes->map):NULL); > - > syms= &pCore->map[(first - pCore->minKeyCode) * pCore->mapWidth]; > for (key=first; key<(first+num); key++,syms+= pCore->mapWidth) { > explicit= xkb->server->explicit[key]&XkbExplicitKeyTypesMask; > @@ -242,7 +239,7 @@ XkbMapChangesPtr mc; > types[XkbGroup4Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup4Index); > nG= > XkbKeyTypesForCoreSymbols(xkb,pCore->mapWidth,syms,explicit,types, > tsyms); > - XkbChangeTypesOfKey(xkb,key,nG,XkbAllGroupsMask,types,mc); > + XkbChangeTypesOfKey(xkb,key,nG,XkbAllGroupsMask,types,&changes->map); > memcpy((char *)XkbKeySymsPtr(xkb,key),(char *)tsyms, > XkbKeyNumSyms(xkb,key)*sizeof(KeySym)); > } > -- > 1.6.3.3 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel