diff options
| -rw-r--r-- | sys/src/libdraw/font.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/src/libdraw/font.c b/sys/src/libdraw/font.c index 60488f5a7..ef43b2ac0 100644 --- a/sys/src/libdraw/font.c +++ b/sys/src/libdraw/font.c @@ -216,16 +216,14 @@ loadchar(Font *f, Rune r, Cacheinfo *c, int h, int noflush, char **subfontname) subf->age = 0; }else{ /* too recent; grow instead */ of = f->subf; - f->subf = malloc((f->nsubf+DSUBF)*sizeof *subf); + f->subf = realloc(of, (f->nsubf+DSUBF)*sizeof *subf); if(f->subf == nil){ f->subf = of; goto Toss; } - memmove(f->subf, of, (f->nsubf+DSUBF)*sizeof *subf); - memset(f->subf+f->nsubf, 0, DSUBF*sizeof *subf); subf = &f->subf[f->nsubf]; + memset(subf, 0, DSUBF*sizeof *subf); f->nsubf += DSUBF; - free(of); } } subf->age = 0; |
