libdraw: font->display->defaultsubfont vs. display->defaultsubfont, dead code, malloc erros
it is possible to have fonts belong to different or no display, so the check for defaultsubfont has to be against font->display, not the global display variable. remove unused freeup() routine. handle strdup() error in allocsubfont() and realloc() error in buildfont().
This commit is contained in:
parent
fc1ff7705b
commit
2259f3fb9a
4 changed files with 32 additions and 57 deletions
|
@ -12,8 +12,8 @@ mkfont(Subfont *subfont, Rune min)
|
|||
Cachefont *c;
|
||||
|
||||
font = malloc(sizeof(Font));
|
||||
if(font == 0)
|
||||
return 0;
|
||||
if(font == nil)
|
||||
return nil;
|
||||
memset(font, 0, sizeof(Font));
|
||||
font->display = subfont->bits->display;
|
||||
font->name = strdup("<synthetic>");
|
||||
|
@ -21,7 +21,7 @@ mkfont(Subfont *subfont, Rune min)
|
|||
font->nsubf = NFSUBF;
|
||||
font->cache = malloc(font->ncache * sizeof(font->cache[0]));
|
||||
font->subf = malloc(font->nsubf * sizeof(font->subf[0]));
|
||||
if(font->name==0 || font->cache==0 || font->subf==0){
|
||||
if(font->name==nil || font->cache==nil || font->subf==nil){
|
||||
Err:
|
||||
free(font->name);
|
||||
free(font->cache);
|
||||
|
@ -36,18 +36,18 @@ mkfont(Subfont *subfont, Rune min)
|
|||
font->ascent = subfont->ascent;
|
||||
font->age = 1;
|
||||
font->sub = malloc(sizeof(Cachefont*));
|
||||
if(font->sub == 0)
|
||||
if(font->sub == nil)
|
||||
goto Err;
|
||||
c = malloc(sizeof(Cachefont));
|
||||
if(c == 0)
|
||||
if(c == nil)
|
||||
goto Err;
|
||||
font->nsub = 1;
|
||||
font->sub[0] = c;
|
||||
c->min = min;
|
||||
c->max = min+subfont->n-1;
|
||||
c->offset = 0;
|
||||
c->name = 0; /* noticed by freeup() and agefont() */
|
||||
c->subfontname = 0;
|
||||
c->name = nil; /* noticed by agefont() */
|
||||
c->subfontname = nil;
|
||||
font->subf[0].age = 0;
|
||||
font->subf[0].cf = c;
|
||||
font->subf[0].f = subfont;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue