1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-06 09:01:13 +02:00

zsh-workers/8796

This commit is contained in:
Tanaka Akira 1999-11-29 09:14:24 +00:00
parent 23f3f128c7
commit 6e8cfbd006
2 changed files with 18 additions and 8 deletions

View file

@ -451,12 +451,14 @@ freecadef(Cadef d)
Caopt p, n; Caopt p, n;
zsfree(d->match); zsfree(d->match);
if (d->defs)
freearray(d->defs); freearray(d->defs);
for (p = d->opts; p; p = n) { for (p = d->opts; p; p = n) {
n = p->next; n = p->next;
zsfree(p->name); zsfree(p->name);
zsfree(p->descr); zsfree(p->descr);
if (p->xor)
freearray(p->xor); freearray(p->xor);
freecaargs(p->args); freecaargs(p->args);
zfree(p, sizeof(*p)); zfree(p, sizeof(*p));
@ -1592,12 +1594,14 @@ freecvdef(Cvdef d)
Cvval p, n; Cvval p, n;
zsfree(d->descr); zsfree(d->descr);
if (d->defs)
freearray(d->defs); freearray(d->defs);
for (p = d->vals; p; p = n) { for (p = d->vals; p; p = n) {
n = p->next; n = p->next;
zsfree(p->name); zsfree(p->name);
zsfree(p->descr); zsfree(p->descr);
if (p->xor)
freearray(p->xor); freearray(p->xor);
freecaargs(p->arg); freecaargs(p->arg);
zfree(p, sizeof(*p)); zfree(p, sizeof(*p));
@ -2211,6 +2215,7 @@ freecstyle(Cstyle s)
n = s->next; n = s->next;
zsfree(s->name); zsfree(s->name);
if (s->vals)
freearray(s->vals); freearray(s->vals);
zfree(s, sizeof(*s)); zfree(s, sizeof(*s));
@ -2274,6 +2279,7 @@ setcstyle(Cspat p, char *name, char **vals)
/* Exists -> replace. */ /* Exists -> replace. */
if (s->vals)
freearray(s->vals); freearray(s->vals);
PERMALLOC { PERMALLOC {
s->vals = arrdup(vals); s->vals = arrdup(vals);
@ -2616,6 +2622,7 @@ freectset(Ctset s)
while (s) { while (s) {
n = s->next; n = s->next;
if (s->tags)
freearray(s->tags); freearray(s->tags);
zfree(s, sizeof(*s)); zfree(s, sizeof(*s));
@ -2627,6 +2634,7 @@ static void
freectags(Ctags t) freectags(Ctags t)
{ {
if (t) { if (t) {
if (t->all)
freearray(t->all); freearray(t->all);
zsfree(t->context); zsfree(t->context);
freectset(t->sets); freectset(t->sets);

View file

@ -2189,6 +2189,8 @@ freearray(char **s)
{ {
char **t = s; char **t = s;
DPUTS(!s, "freearray() with zero argument");
while (*s) while (*s)
zsfree(*s++); zsfree(*s++);
free(t); free(t);