plan9fox/sys/src/libdraw/subfont.c
cinap_lenrek 2259f3fb9a 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().
2015-03-02 11:01:12 +01:00

32 lines
510 B
C

#include <u.h>
#include <libc.h>
#include <draw.h>
Subfont*
allocsubfont(char *name, int n, int height, int ascent, Fontchar *info, Image *i)
{
Subfont *f;
assert(height != 0 /* allocsubfont */);
f = malloc(sizeof(Subfont));
if(f == nil)
return nil;
f->n = n;
f->height = height;
f->ascent = ascent;
f->info = info;
f->bits = i;
f->ref = 1;
if(name){
f->name = strdup(name);
if(f->name == nil){
free(f);
return nil;
}
installsubfont(name, f);
}else
f->name = nil;
return f;
}