about summary refs log tree commit diff
path: root/Src/Zle/computil.c
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-11-29 09:14:24 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-11-29 09:14:24 +0000
commit6e8cfbd006329fc181e772f3ad5e5ecb2853bc31 (patch)
treea4bb0f36f6584dacfaa4e762204e3cf3a31a7a27 /Src/Zle/computil.c
parent23f3f128c7d92c668e563623ac03d22fe1e40167 (diff)
downloadzsh-6e8cfbd006329fc181e772f3ad5e5ecb2853bc31.tar.gz
zsh-6e8cfbd006329fc181e772f3ad5e5ecb2853bc31.tar.xz
zsh-6e8cfbd006329fc181e772f3ad5e5ecb2853bc31.zip
zsh-workers/8796
Diffstat (limited to 'Src/Zle/computil.c')
-rw-r--r--Src/Zle/computil.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index f39a65b48..74b395e9b 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -451,13 +451,15 @@ freecadef(Cadef d)
 	Caopt p, n;
 
 	zsfree(d->match);
-	freearray(d->defs);
+	if (d->defs)
+	    freearray(d->defs);
 
 	for (p = d->opts; p; p = n) {
 	    n = p->next;
 	    zsfree(p->name);
 	    zsfree(p->descr);
-	    freearray(p->xor);
+	    if (p->xor)
+		freearray(p->xor);
 	    freecaargs(p->args);
 	    zfree(p, sizeof(*p));
 	}
@@ -1592,13 +1594,15 @@ freecvdef(Cvdef d)
 	Cvval p, n;
 
 	zsfree(d->descr);
-	freearray(d->defs);
+	if (d->defs)
+	    freearray(d->defs);
 
 	for (p = d->vals; p; p = n) {
 	    n = p->next;
 	    zsfree(p->name);
 	    zsfree(p->descr);
-	    freearray(p->xor);
+	    if (p->xor)
+		freearray(p->xor);
 	    freecaargs(p->arg);
 	    zfree(p, sizeof(*p));
 	}
@@ -2211,7 +2215,8 @@ freecstyle(Cstyle s)
 	n = s->next;
 
 	zsfree(s->name);
-	freearray(s->vals);
+	if (s->vals)
+	    freearray(s->vals);
 	zfree(s, sizeof(*s));
 
 	s = n;
@@ -2274,7 +2279,8 @@ setcstyle(Cspat p, char *name, char **vals)
 
 	    /* Exists -> replace. */
 
-	    freearray(s->vals);
+	    if (s->vals)
+		freearray(s->vals);
 	    PERMALLOC {
 		s->vals = arrdup(vals);
 	    } LASTALLOC;
@@ -2616,7 +2622,8 @@ freectset(Ctset s)
     while (s) {
 	n = s->next;
 
-	freearray(s->tags);
+	if (s->tags)
+	    freearray(s->tags);
 	zfree(s, sizeof(*s));
 
 	s = n;
@@ -2627,7 +2634,8 @@ static void
 freectags(Ctags t)
 {
     if (t) {
-	freearray(t->all);
+	if (t->all)
+	    freearray(t->all);
 	zsfree(t->context);
 	freectset(t->sets);
 	zfree(t, sizeof(*t));