[PATCH 06/11] xkb: purge _XkbLibError.

Peter Hutterer peter.hutterer at who-t.net
Sun Jan 17 19:35:56 PST 2010


On Fri, Jan 15, 2010 at 08:33:44AM -0800, Dan Nicholson wrote:
> On Thu, Jan 14, 2010 at 9:32 PM, Peter Hutterer
> <peter.hutterer at who-t.net> wrote:
> > This is a leftover from the shared header files and was defined away anyway.
> >
> > Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> > ---
> >  include/xkbsrv.h |    1 -
> >  xkb/xkbout.c     |   28 ++------
> >  xkb/xkmread.c    |  194 +++++++++++++----------------------------------------
> >  3 files changed, 55 insertions(+), 168 deletions(-)
> >
> > diff --git a/include/xkbsrv.h b/include/xkbsrv.h
> > index 6b702e8..bc74eef 100644
> > --- a/include/xkbsrv.h
> > +++ b/include/xkbsrv.h
> > @@ -299,7 +299,6 @@ extern _X_EXPORT char *     XkbBinDirectory;
> >
> >  extern _X_EXPORT CARD32        xkbDebugFlags;
> >
> > -#define        _XkbLibError(c,l,d) /* Epoch fail */
> >  #define        _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff)))
> >  #define        _XkbErrCode3(a,b,c)     _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
> >  #define        _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
> > diff --git a/xkb/xkbout.c b/xkb/xkbout.c
> > index 53f6841..91f5080 100644
> > --- a/xkb/xkbout.c
> > +++ b/xkb/xkbout.c
> > @@ -110,10 +110,8 @@ Atom                       kcName;
> >  register unsigned      i;
> >  char *                 alternate;
> >
> > -    if ((!xkb)||(!xkb->names)||(!xkb->names->keys)) {
> > -       _XkbLibError(_XkbErrMissingNames,"XkbWriteXKBKeycodes",0);
> > +    if ((!xkb)||(!xkb->names)||(!xkb->names->keys))
> >        return False;
> > -    }
> >     kcName= xkb->names->keycodes;
> >     if (kcName!=None)
> >         fprintf(file,"xkb_keycodes \"%s\" {\n",
> > @@ -170,14 +168,10 @@ register unsigned i,n;
> >  XkbKeyTypePtr          type;
> >  XkbKTMapEntryPtr       entry;
> >
> > -    if ((!xkb)||(!xkb->map)||(!xkb->map->types)) {
> > -       _XkbLibError(_XkbErrMissingTypes,"XkbWriteXKBKeyTypes",0);
> > +    if ((!xkb)||(!xkb->map)||(!xkb->map->types))
> >        return False;
> > -    }
> > -    if (xkb->map->num_types<XkbNumRequiredTypes) {
> > -       _XkbLibError(_XkbErrMissingReqTypes,"XkbWriteXKBKeyTypes",0);
> > +    if (xkb->map->num_types<XkbNumRequiredTypes)
> >        return 0;
> > -    }
> >     if ((xkb->names==NULL)||(xkb->names->types==None))
> >         fprintf(file,"xkb_types {\n\n");
> >     else fprintf(file,"xkb_types \"%s\" {\n\n",
> > @@ -276,10 +270,8 @@ XkbWriteXKBCompatMap(      FILE *                  file,
> >  register unsigned      i;
> >  XkbSymInterpretPtr     interp;
> >
> > -    if ((!xkb)||(!xkb->compat)||(!xkb->compat->sym_interpret)) {
> > -       _XkbLibError(_XkbErrMissingCompatMap,"XkbWriteXKBCompatMap",0);
> > +    if ((!xkb)||(!xkb->compat)||(!xkb->compat->sym_interpret))
> >        return False;
> > -    }
> >     if ((xkb->names==NULL)||(xkb->names->compat==None))
> >         fprintf(file,"xkb_compatibility {\n\n");
> >     else fprintf(file,"xkb_compatibility \"%s\" {\n\n",
> > @@ -355,14 +347,10 @@ Bool                      showActions;
> >
> >     map= xkb->map;
> >     srv= xkb->server;
> > -    if ((!xkb)||(!map)||(!map->syms)||(!map->key_sym_map)) {
> > -       _XkbLibError(_XkbErrMissingSymbols,"XkbWriteXKBSymbols",0);
> > +    if ((!xkb)||(!map)||(!map->syms)||(!map->key_sym_map))
> >        return False;
> > -    }
> > -    if ((!xkb->names)||(!xkb->names->keys)) {
> > -       _XkbLibError(_XkbErrMissingNames,"XkbWriteXKBSymbols",0);
> > +    if ((!xkb->names)||(!xkb->names->keys))
> >        return False;
> > -    }
> >     if ((xkb->names==NULL)||(xkb->names->symbols==None))
> >         fprintf(file,"xkb_symbols {\n\n");
> >     else fprintf(file,"xkb_symbols \"%s\" {\n\n",
> > @@ -802,10 +790,8 @@ XkbWriteXKBGeometry(       FILE *                  file,
> >  register unsigned      i,n;
> >  XkbGeometryPtr         geom;
> >
> > -    if ((!xkb)||(!xkb->geom)) {
> > -       _XkbLibError(_XkbErrMissingGeometry,"XkbWriteXKBGeometry",0);
> > +    if ((!xkb)||(!xkb->geom))
> >        return False;
> > -    }
> >     geom= xkb->geom;
> >     if (geom->name==None)
> >         fprintf(file,"xkb_geometry {\n\n");
> > diff --git a/xkb/xkmread.c b/xkb/xkmread.c
> > index 3c2df03..758f2af 100644
> > --- a/xkb/xkmread.c
> > +++ b/xkb/xkmread.c
> > @@ -171,10 +171,8 @@ register unsigned int i,bit;
> >  unsigned int   bound,named,tmp;
> >  int            nRead=0;
> >
> > -    if (XkbAllocServerMap(xkb,XkbVirtualModsMask,0)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"ReadXkmVirtualMods",0);
> > +    if (XkbAllocServerMap(xkb,XkbVirtualModsMask,0)!=Success)
> >        return -1;
> > -    }
> >     bound= XkmGetCARD16(file,&nRead);
> >     named= XkmGetCARD16(file,&nRead);
> >     for (i=tmp=0,bit=1;i<XkbNumVirtualMods;i++,bit<<=1) {
> > @@ -187,10 +185,8 @@ int                nRead=0;
> >     }
> >     if ((i= XkbPaddedSize(tmp)-tmp)>0)
> >        nRead+= XkmSkipPadding(file,i);
> > -    if (XkbAllocNames(xkb,XkbVirtualModNamesMask,0,0)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"ReadXkmVirtualMods",0);
> > +    if (XkbAllocNames(xkb,XkbVirtualModNamesMask,0,0)!=Success)
> >        return -1;
> > -    }
> >     for (i=0,bit=1;i<XkbNumVirtualMods;i++,bit<<=1) {
> >        char name[100];
> >        if (named&bit) {
> > @@ -226,28 +222,22 @@ XkbKeyNamePtr     pN;
> >     else {
> >        if (minKC<xkb->min_key_code)
> >            xkb->min_key_code= minKC;
> > -       if (maxKC>xkb->max_key_code) {
> > -           _XkbLibError(_XkbErrBadValue,"ReadXkmKeycodes",maxKC);
> > +       if (maxKC>xkb->max_key_code)
> >            return -1;
> > -       }
> >     }
> >     nAl= XkmGetCARD8(file,&nRead);
> >     nRead+= XkmSkipPadding(file,1);
> >
> >  #define WANTED (XkbKeycodesNameMask|XkbKeyNamesMask|XkbKeyAliasesMask)
> > -    if (XkbAllocNames(xkb,WANTED,0,nAl)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"ReadXkmKeycodes",0);
> > +    if (XkbAllocNames(xkb,WANTED,0,nAl)!=Success)
> >        return -1;
> > -    }
> >     if (name[0]!='\0') {
> >        xkb->names->keycodes= XkbInternAtom(name,False);
> >     }
> >
> >     for (pN=&xkb->names->keys[minKC],i=minKC;i<=(int)maxKC;i++,pN++) {
> > -       if (fread(pN,1,XkbKeyNameLength,file)!=XkbKeyNameLength) {
> > -           _XkbLibError(_XkbErrBadLength,"ReadXkmKeycodes",0);
> > +       if (fread(pN,1,XkbKeyNameLength,file)!=XkbKeyNameLength)
> >            return -1;
> > -       }
> >        nRead+= XkbKeyNameLength;
> >     }
> >     if (nAl>0) {
> > @@ -255,10 +245,8 @@ XkbKeyNamePtr      pN;
> >        for (pAl= xkb->names->key_aliases,i=0;i<nAl;i++,pAl++) {
> >            int tmp;
> >            tmp= fread(pAl,1,2*XkbKeyNameLength,file);
> > -           if (tmp!=2*XkbKeyNameLength) {
> > -               _XkbLibError(_XkbErrBadLength,"ReadXkmKeycodes",0);
> > +           if (tmp!=2*XkbKeyNameLength)
> >                return -1;
> > -           }
> >            nRead+= 2*XkbKeyNameLength;
> >        }
> >        if (changes)
> > @@ -284,55 +272,40 @@ XkbKTMapEntryPtr  entry;
> >  xkmKTMapEntryDesc      wire_entry;
> >  char                   buf[100];
> >
> > -    if ((tmp= XkmGetCountedString(file,buf,100))<1) {
> > -       _XkbLibError(_XkbErrBadLength,"ReadXkmKeyTypes",0);
> > +    if ((tmp= XkmGetCountedString(file,buf,100))<1)
> >        return -1;
> > -    }
> >     nRead+= tmp;
> >     if (buf[0]!='\0') {
> > -       if (XkbAllocNames(xkb,XkbTypesNameMask,0,0)!=Success) {
> > -           _XkbLibError(_XkbErrBadAlloc,"ReadXkmKeyTypes",0);
> > +       if (XkbAllocNames(xkb,XkbTypesNameMask,0,0)!=Success)
> >            return -1;
> > -        }
> >        xkb->names->types= XkbInternAtom(buf,False);
> >     }
> >     num_types= XkmGetCARD16(file,&nRead);
> >     nRead+= XkmSkipPadding(file,2);
> >     if (num_types<1)
> >        return nRead;
> > -    if (XkbAllocClientMap(xkb,XkbKeyTypesMask,num_types)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"ReadXkmKeyTypes",0);
> > +    if (XkbAllocClientMap(xkb,XkbKeyTypesMask,num_types)!=Success)
> >        return nRead;
> > -    }
> > +
> >     xkb->map->num_types= num_types;
> > -    if (num_types<XkbNumRequiredTypes) {
> > -       _XkbLibError(_XkbErrMissingReqTypes,"ReadXkmKeyTypes",0);
> > +    if (num_types<XkbNumRequiredTypes)
> >        return -1;
> > -    }
> >     type= xkb->map->types;
> >     for (i=0;i<num_types;i++,type++) {
> > -       if ((int)fread(&wire,SIZEOF(xkmKeyTypeDesc),1,file)<1) {
> > -           _XkbLibError(_XkbErrBadLength,"ReadXkmKeyTypes",0);
> > +       if ((int)fread(&wire,SIZEOF(xkmKeyTypeDesc),1,file)<1)
> >            return -1;
> > -       }
> >        nRead+= SIZEOF(xkmKeyTypeDesc);
> >        if (((i==XkbOneLevelIndex)&&(wire.numLevels!=1))||
> >            (((i==XkbTwoLevelIndex)||(i==XkbAlphabeticIndex)||
> > -            ((i)==XkbKeypadIndex))&&(wire.numLevels!=2))) {
> > -           _XkbLibError(_XkbErrBadTypeWidth,"ReadXkmKeyTypes",i);
> > +            ((i)==XkbKeypadIndex))&&(wire.numLevels!=2)))
> >            return -1;
> > -       }
> >        tmp= wire.nMapEntries;
> >        XkmInsureTypedSize(type->map,type->map_count,&tmp,XkbKTMapEntryRec);
> > -       if ((wire.nMapEntries>0)&&(type->map==NULL)) {
> > -           _XkbLibError(_XkbErrBadValue,"ReadXkmKeyTypes",wire.nMapEntries);
> > +       if ((wire.nMapEntries>0)&&(type->map==NULL))
> >            return -1;
> > -       }
> >        for (n=0,entry= type->map;n<wire.nMapEntries;n++,entry++) {
> > -           if (fread(&wire_entry,SIZEOF(xkmKTMapEntryDesc),1,file)<(int)1) {
> > -               _XkbLibError(_XkbErrBadLength,"ReadXkmKeyTypes",0);
> > +           if (fread(&wire_entry,SIZEOF(xkmKTMapEntryDesc),1,file)<(int)1)
> >                return -1;
> > -           }
> >            nRead+= SIZEOF(xkmKTMapEntryDesc);
> >            entry->active= (wire_entry.virtualMods==0);
> >            entry->level= wire_entry.level;
> > @@ -344,10 +317,8 @@ char                       buf[100];
> >        if (((i==XkbOneLevelIndex)&&(strcmp(buf,"ONE_LEVEL")!=0))||
> >            ((i==XkbTwoLevelIndex)&&(strcmp(buf,"TWO_LEVEL")!=0))||
> >            ((i==XkbAlphabeticIndex)&&(strcmp(buf,"ALPHABETIC")!=0))||
> > -           ((i==XkbKeypadIndex)&&(strcmp(buf,"KEYPAD")!=0))) {
> > -          _XkbLibError(_XkbErrBadTypeName,"ReadXkmKeyTypes",0);
> > +           ((i==XkbKeypadIndex)&&(strcmp(buf,"KEYPAD")!=0)))
> >           return -1;
> > -       }
> >        if (buf[0]!='\0') {
> >             type->name= XkbInternAtom(buf,False);
> >        }
> > @@ -358,15 +329,11 @@ char                      buf[100];
> >            XkbModsPtr  pre;
> >            XkmInsureTypedSize(type->preserve,type->map_count,&tmp,
> >                                                XkbModsRec);
> > -           if (type->preserve==NULL) {
> > -               _XkbLibError(_XkbErrBadMatch,"ReadXkmKeycodes",0);
> > +           if (type->preserve==NULL)
> >                return -1;
> > -           }
> >            for (n=0,pre=type->preserve;n<wire.nMapEntries;n++,pre++) {
> > -               if (fread(&p_entry,SIZEOF(xkmModsDesc),1,file)<1) {
> > -                   _XkbLibError(_XkbErrBadLength,"ReadXkmKeycodes",0);
> > +               if (fread(&p_entry,SIZEOF(xkmModsDesc),1,file)<1)
> >                    return -1;
> > -               }
> >                nRead+= SIZEOF(xkmModsDesc);
> >                pre->mask= p_entry.realMods;
> >                pre->real_mods= p_entry.realMods;
> > @@ -375,10 +342,8 @@ char                       buf[100];
> >        }
> >        if (wire.nLevelNames>0) {
> >            int width= wire.numLevels;
> > -           if (wire.nLevelNames>(unsigned)width) {
> > -               _XkbLibError(_XkbErrBadMatch,"ReadXkmKeycodes",0);
> > +           if (wire.nLevelNames>(unsigned)width)
> >                return -1;
> > -           }
> >            XkmInsureTypedSize(type->level_names,type->num_levels,&width,Atom);
> >            if (type->level_names!=NULL) {
> >                for (n=0;n<wire.nLevelNames;n++) {
> > @@ -420,16 +385,12 @@ int                       nRead=0;
> >  XkbCompatMapPtr                compat;
> >  XkbAction               *act;
> >
> > -    if ((tmp= XkmGetCountedString(file,name,100))<1) {
> > -       _XkbLibError(_XkbErrBadLength,"ReadXkmCompatMap",0);
> > +    if ((tmp= XkmGetCountedString(file,name,100))<1)
> >        return -1;
> > -    }
> >     nRead+= tmp;
> >     if (name[0]!='\0') {
> > -       if (XkbAllocNames(xkb,XkbCompatNameMask,0,0)!=Success) {
> > -           _XkbLibError(_XkbErrBadAlloc,"ReadXkmCompatMap",0);
> > +       if (XkbAllocNames(xkb,XkbCompatNameMask,0,0)!=Success)
> >            return -1;
> > -       }
> >        xkb->names->compat= XkbInternAtom(name,False);
> >     }
> >     num_si= XkmGetCARD16(file,&nRead);
> > @@ -582,14 +543,10 @@ char                      buf[100];
> >  unsigned               tmp;
> >  int                    nRead=0;
> >
> > -    if ((xkb->indicators==NULL)&&(XkbAllocIndicatorMaps(xkb)!=Success)) {
> > -       _XkbLibError(_XkbErrBadAlloc,"indicator rec",0);
> > +    if ((xkb->indicators==NULL)&&(XkbAllocIndicatorMaps(xkb)!=Success))
> >        return -1;
> > -    }
> > -    if (XkbAllocNames(xkb,XkbIndicatorNamesMask,0,0)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"indicator names",0);
> > +    if (XkbAllocNames(xkb,XkbIndicatorNamesMask,0,0)!=Success)
> >        return -1;
> > -    }
> >     nLEDs= XkmGetCARD8(file,&nRead);
> >     nRead+= XkmSkipPadding(file,3);
> >     xkb->indicators->phys_indicators= XkmGetCARD32(file,&nRead);
> > @@ -597,18 +554,14 @@ int                       nRead=0;
> >        Atom                    name;
> >        XkbIndicatorMapPtr      map;
> >
> > -       if ((tmp=XkmGetCountedString(file,buf,100))<1) {
> > -           _XkbLibError(_XkbErrBadLength,"ReadXkmIndicators",0);
> > +       if ((tmp=XkmGetCountedString(file,buf,100))<1)
> >            return -1;
> > -       }
> >        nRead+= tmp;
> >        if (buf[0]!='\0')
> >             name= XkbInternAtom(buf,False);
> >        else name= None;
> > -       if ((tmp=fread(&wire,SIZEOF(xkmIndicatorMapDesc),1,file))<1) {
> > -           _XkbLibError(_XkbErrBadLength,"ReadXkmIndicators",0);
> > +       if ((tmp=fread(&wire,SIZEOF(xkmIndicatorMapDesc),1,file))<1)
> >            return -1;
> > -       }
> >        nRead+= tmp*SIZEOF(xkmIndicatorMapDesc);
> >        if (xkb->names) {
> >            xkb->names->indicators[wire.indicator-1]= name;
> > @@ -672,10 +625,8 @@ int                        nRead=0;
> >     totalVModMaps= XkmGetCARD8(file,&nRead);
> >     if (XkbAllocNames(xkb,
> >              XkbSymbolsNameMask|XkbPhysSymbolsNameMask|XkbGroupNamesMask,
> > -             0,0)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"physical names",0);
> > +             0,0)!=Success)
> >        return -1;
> > -    }
> >     if ((buf[0]!='\0')&&(xkb->names)) {
> >        Atom name;
> >        name= XkbInternAtom(buf,0);
> > @@ -695,35 +646,25 @@ int                       nRead=0;
> >            else xkb->names->groups[i]= None;
> >        }
> >     }
> > -    if (XkbAllocServerMap(xkb,XkbAllServerInfoMask,0)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"server map",0);
> > +    if (XkbAllocServerMap(xkb,XkbAllServerInfoMask,0)!=Success)
> >        return -1;
> > -    }
> > -    if (XkbAllocClientMap(xkb,XkbAllClientInfoMask,0)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"client map",0);
> > +    if (XkbAllocClientMap(xkb,XkbAllClientInfoMask,0)!=Success)
> >        return -1;
> > -    }
> > -    if (XkbAllocControls(xkb,XkbAllControlsMask)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"controls",0);
> > +    if (XkbAllocControls(xkb,XkbAllControlsMask)!=Success)
> >        return -1;
> > -    }
> >     if ((xkb->map==NULL)||(xkb->server==NULL))
> >        return -1;
> >     if (xkb->min_key_code<8)   xkb->min_key_code= minKC;
> >     if (xkb->max_key_code<8)   xkb->max_key_code= maxKC;
> >     if ((minKC>=8)&&(minKC<xkb->min_key_code))
> >        xkb->min_key_code= minKC;
> > -    if ((maxKC>=8)&&(maxKC>xkb->max_key_code)) {
> > -       _XkbLibError(_XkbErrBadValue,"keys in symbol map",maxKC);
> > +    if ((maxKC>=8)&&(maxKC>xkb->max_key_code))
> >        return -1;
> > -    }
> >     for (i=minKC;i<=(int)maxKC;i++)  {
> >        Atom            typeName[XkbNumKbdGroups];
> >        XkbKeyTypePtr   type[XkbNumKbdGroups];
> > -       if ((tmp=fread(&wireMap,SIZEOF(xkmKeySymMapDesc),1,file))<1) {
> > -           _XkbLibError(_XkbErrBadLength,"ReadXkmSymbols",0);
> > +       if ((tmp=fread(&wireMap,SIZEOF(xkmKeySymMapDesc),1,file))<1)
> >            return -1;
> > -       }
> >        nRead+= tmp*SIZEOF(xkmKeySymMapDesc);
> >        bzero((char *)typeName,XkbNumKbdGroups*sizeof(Atom));
> >        bzero((char *)type,XkbNumKbdGroups*sizeof(XkbKeyTypePtr));
> > @@ -736,10 +677,8 @@ int                        nRead=0;
> >                    nRead+= tmp;
> >                }
> >                type[g]=FindTypeForKey(xkb,typeName[g],wireMap.width,NULL);
> > -               if (type[g]==NULL) {
> > -                   _XkbLibError(_XkbErrMissingTypes,"ReadXkmSymbols",0);
> > +               if (type[g]==NULL)
> >                    return -1;
> > -               }
> >                if (typeName[g]==type[g]->name)
> >                    xkb->server->explicit[i]|= (1<<g);
> >            }
> > @@ -892,10 +831,9 @@ register int               r;
> >        tmp= fread(&rowWire,SIZEOF(xkmOverlayRowDesc),1,file);
> >        nRead+= tmp*SIZEOF(xkmOverlayRowDesc);
> >        row= XkbAddGeomOverlayRow(ol,rowWire.row_under,rowWire.num_keys);
> > -       if (!row) {
> > -           _XkbLibError(_XkbErrBadAlloc,"ReadXkmGeomOverlay",0);
> > +       if (!row)
> >           return nRead;
> > -       }
> > +
> >        for (k=0;k<rowWire.num_keys;k++) {
> >            tmp= fread(&keyWire,SIZEOF(xkmOverlayKeyDesc),1,file);
> >            nRead+= tmp*SIZEOF(xkmOverlayKeyDesc);
> > @@ -926,10 +864,9 @@ Atom               nameAtom;
> >     section= XkbAddGeomSection(geom,nameAtom,sectionWire.num_rows,
> >                                                sectionWire.num_doodads,
> >                                                sectionWire.num_overlays);
> > -    if (!section) {
> > -       _XkbLibError(_XkbErrBadAlloc,"ReadXkmGeomSection",0);
> > +    if (!section)
> >        return nRead;
> > -    }
> > +
> >     section->top= sectionWire.top;
> >     section->left= sectionWire.left;
> >     section->width= sectionWire.width;
> > @@ -947,10 +884,8 @@ Atom               nameAtom;
> >            tmp= fread(&rowWire,SIZEOF(xkmRowDesc),1,file);
> >            nRead+= SIZEOF(xkmRowDesc)*tmp;
> >            row= XkbAddGeomRow(section,rowWire.num_keys);
> > -           if (!row) {
> > -               _XkbLibError(_XkbErrBadAlloc,"ReadXkmKeycodes",0);
> > +           if (!row)
> >                return nRead;
> > -           }
> >            row->top= rowWire.top;
> >            row->left= rowWire.left;
> >            row->vertical= rowWire.vertical;
> > @@ -958,10 +893,8 @@ Atom               nameAtom;
> >                tmp= fread(&keyWire,SIZEOF(xkmKeyDesc),1,file);
> >                nRead+= SIZEOF(xkmKeyDesc)*tmp;
> >                key= XkbAddGeomKey(row);
> > -               if (!key) {
> > -                   _XkbLibError(_XkbErrBadAlloc,"ReadXkmGeomSection",0);
> > +               if (!key)
> >                    return nRead;
> > -               }
> >                memcpy(key->name.name,keyWire.name,XkbKeyNameLength);
> >                key->gap= keyWire.gap;
> >                key->shape_ndx= keyWire.shape_ndx;
> > @@ -1009,10 +942,8 @@ XkbGeometrySizesRec       sizes;
> >     sizes.num_sections= wireGeom.num_sections;
> >     sizes.num_doodads= wireGeom.num_doodads;
> >     sizes.num_key_aliases= wireGeom.num_key_aliases;
> > -    if (XkbAllocGeometry(xkb,&sizes)!=Success) {
> > -       _XkbLibError(_XkbErrBadAlloc,"ReadXkmGeometry",0);
> > +    if (XkbAllocGeometry(xkb,&sizes)!=Success)
> >        return nRead;
> > -    }
> >     geom= xkb->geom;
> >     geom->name= XkbInternAtom(buf,False);
> >     geom->width_mm= wireGeom.width_mm;
> > @@ -1024,19 +955,15 @@ XkbGeometrySizesRec      sizes;
> >        for (i=0;i<wireGeom.num_properties;i++) {
> >            nRead+= XkmGetCountedString(file,buf,100);
> >            nRead+= XkmGetCountedString(file,val,1024);
> > -           if (XkbAddGeomProperty(geom,buf,val)==NULL) {
> > -               _XkbLibError(_XkbErrBadAlloc,"ReadXkmGeometry",0);
> > +           if (XkbAddGeomProperty(geom,buf,val)==NULL)
> >                return nRead;
> > -           }
> >        }
> >     }
> >     if (wireGeom.num_colors>0) {
> >        for (i=0;i<wireGeom.num_colors;i++) {
> >            nRead+= XkmGetCountedString(file,buf,100);
> > -           if (XkbAddGeomColor(geom,buf,i)==NULL) {
> > -               _XkbLibError(_XkbErrBadAlloc,"ReadXkmGeometry",0);
> > +           if (XkbAddGeomColor(geom,buf,i)==NULL)
> >                return nRead;
> > -           }
> >        }
> >     }
> >     geom->base_color= &geom->colors[wireGeom.base_color_ndx];
> > @@ -1054,20 +981,16 @@ XkbGeometrySizesRec      sizes;
> >            tmp= fread(&shapeWire,SIZEOF(xkmShapeDesc),1,file);
> >            nRead+= tmp*SIZEOF(xkmShapeDesc);
> >            shape= XkbAddGeomShape(geom,nameAtom,shapeWire.num_outlines);
> > -           if (!shape) {
> > -               _XkbLibError(_XkbErrBadAlloc,"ReadXkmGeometry",0);
> > +           if (!shape)
> >                return nRead;
> > -           }
> >            for (n=0;n<shapeWire.num_outlines;n++) {
> >                register int    p;
> >                xkmPointDesc    ptWire;
> >                tmp= fread(&olWire,SIZEOF(xkmOutlineDesc),1,file);
> >                nRead+= tmp*SIZEOF(xkmOutlineDesc);
> >                ol= XkbAddGeomOutline(shape,olWire.num_points);
> > -               if (!ol) {
> > -                   _XkbLibError(_XkbErrBadAlloc,"ReadXkmGeometry",0);
> > +               if (!ol)
> >                    return nRead;
> > -               }
> >                ol->num_points= olWire.num_points;
> >                ol->corner_radius= olWire.corner_radius;
> >                for (p=0;p<olWire.num_points;p++) {
> > @@ -1106,10 +1029,8 @@ XkbGeometrySizesRec      sizes;
> >     if ((wireGeom.num_key_aliases>0)&&(geom->key_aliases)) {
> >        int sz= XkbKeyNameLength*2;
> >        int num= wireGeom.num_key_aliases;
> > -       if (fread(geom->key_aliases,sz,num,file)!=num) {
> > -           _XkbLibError(_XkbErrBadLength,"ReadXkmGeometry",0);
> > +       if (fread(geom->key_aliases,sz,num,file)!=num)
> >            return -1;
> > -       }
> >        nRead+= (num*sz);
> >        geom->num_key_aliases= num;
> >     }
> > @@ -1124,12 +1045,8 @@ int       nRead=0;
> >
> >     hdr= (('x'<<24)|('k'<<16)|('m'<<8)|XkmFileVersion);
> >     tmp= XkmGetCARD32(file,&nRead);
> > -    if (tmp!=hdr) {
> > -       if ((tmp&(~0xff))==(hdr&(~0xff))) {
> > -           _XkbLibError(_XkbErrBadFileVersion,"XkmProbe",tmp&0xff);
> > -       }
> > +    if (tmp!=hdr)
> >        return 0;
> > -    }
> >     return 1;
> >  }
> >
> > @@ -1142,15 +1059,9 @@ unsigned i,size_toc;
> >
> >     hdr= (('x'<<24)|('k'<<16)|('m'<<8)|XkmFileVersion);
> >     tmp= XkmGetCARD32(file,&nRead);
> > -    if (tmp!=hdr) {
> > -       if ((tmp&(~0xff))==(hdr&(~0xff))) {
> > -           _XkbLibError(_XkbErrBadFileVersion,"XkmReadTOC",tmp&0xff);
> > -       }
> > -       else {
> > -           _XkbLibError(_XkbErrBadFileType,"XkmReadTOC",tmp);
> > -       }
> > +    if (tmp!=hdr)
> >        return 0;
> > -    }
> > +
> >     fread(file_info,SIZEOF(xkmFileInfo),1,file);
> >     size_toc= file_info->num_toc;
> >     if (size_toc>max_toc) {
> > @@ -1178,11 +1089,8 @@ unsigned         which= need|want;
> >
> >     if (!XkmReadTOC(file,&fileInfo,MAX_TOC,toc))
> >        return which;
> > -    if ((fileInfo.present&need)!=need) {
> > -       _XkbLibError(_XkbErrIllegalContents,"XkmReadFile",
> > -                                                       need&(~fileInfo.present));
> > +    if ((fileInfo.present&need)!=need)
> >        return which;
> > -    }
> >     if (*xkb==NULL)
> >        *xkb= XkbAllocKeyboard();
> >     for (i=0;i<fileInfo.num_toc;i++) {
> > @@ -1219,8 +1127,6 @@ unsigned          which= need|want;
> >                tmp= ReadXkmGeometry(file,*xkb);
> >                break;
> >            default:
> > -               _XkbLibError(_XkbErrBadImplementation,
> > -                               XkbConfigText(tmpTOC.type,XkbMessage),0);
> >                tmp= 0;
> >                break;
> >        }
> > @@ -1229,10 +1135,6 @@ unsigned         which= need|want;
> >            which&= ~(1<<toc[i].type);
> >            (*xkb)->defined|= (1<<toc[i].type);
> >        }
> > -       if (nRead!=tmpTOC.size) {
> > -           _XkbLibError(_XkbErrBadLength,XkbConfigText(tmpTOC.type,XkbMessage),
> > -                                                       nRead-tmpTOC.size);
> > -       }
> >     }
> >     return which;
> >  }
> 
> Until the glorious future where the server doesn't have to write out a
> keymap file to pass to xkbcomp, it might be a better idea to replace
> these with some sort of LogMessage. That could obviously be a
> different patch, but you might lose track of what the relevant
> conditions are if this goes in first.
> 
> What do you think?

I wasn't 100% sure on this, originally I thought about replacing it with
DebugF but then again, AFAICT we've never really logged these errors anyway
so we're not losing anything.

The only thing I'm sort-of worried about is that it does serve as some
easily human-readble documentation about the errors that may happen. I'm
happy enough to give this one a respin with DebugF instead.

Cheers,
  Peter


More information about the xorg-devel mailing list