summaryrefslogtreecommitdiff
path: root/dfa.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2011-09-03 22:39:04 +0300
committerArnold D. Robbins <arnold@skeeve.com>2011-09-03 22:39:04 +0300
commit86d47bad93db0031e87f09afabaceebd90ffea02 (patch)
tree938068fbe759a02ca86d54e8958e3eb5b85c30a3 /dfa.c
parentcfba2eb6f221d0f94643a57c135c62f5bc66ee10 (diff)
downloadgawk-86d47bad93db0031e87f09afabaceebd90ffea02.tar.gz
Sync again with GNU grep.
Diffstat (limited to 'dfa.c')
-rw-r--r--dfa.c48
1 files changed, 20 insertions, 28 deletions
diff --git a/dfa.c b/dfa.c
index 71c70d8d..02bdd897 100644
--- a/dfa.c
+++ b/dfa.c
@@ -3646,20 +3646,12 @@ static char *
icatalloc (char *old, char const *new)
{
char *result;
- size_t oldsize, newsize;
-
- newsize = (new == NULL) ? 0 : strlen(new);
- if (old == NULL)
- oldsize = 0;
- else if (newsize == 0)
+ size_t oldsize = old == NULL ? 0 : strlen (old);
+ size_t newsize = new == NULL ? 0 : strlen (new);
+ if (newsize == 0)
return old;
- else oldsize = strlen(old);
- if (old == NULL)
- result = malloc(newsize + 1);
- else
- result = realloc(old, oldsize + newsize + 1);
- if (result != NULL && new != NULL)
- strcpy(result + oldsize, new);
+ result = xrealloc (old, oldsize + newsize + 1);
+ strcpy (result + oldsize, new);
return result;
}
@@ -3767,8 +3759,16 @@ comsubs (char *left, char const *right)
}
if (len == 0)
continue;
- if ((cpp = enlist(cpp, lcp, len)) == NULL)
- break;
+ {
+ char **p = enlist (cpp, lcp, len);
+ if (p == NULL)
+ {
+ freelist (cpp);
+ cpp = NULL;
+ break;
+ }
+ cpp = p;
+ }
}
return cpp;
}
@@ -3861,13 +3861,10 @@ dfamust (struct dfa *d)
mp[i] = must0;
for (i = 0; i <= d->tindex; ++i)
{
- mp[i].in = malloc(sizeof *mp[i].in);
- mp[i].left = malloc(2);
- mp[i].right = malloc(2);
- mp[i].is = malloc(2);
- if (mp[i].in == NULL || mp[i].left == NULL ||
- mp[i].right == NULL || mp[i].is == NULL)
- goto done;
+ mp[i].in = xmalloc(sizeof *mp[i].in);
+ mp[i].left = xmalloc(2);
+ mp[i].right = xmalloc(2);
+ mp[i].is = xmalloc(2);
mp[i].left[0] = mp[i].right[0] = mp[i].is[0] = '\0';
mp[i].in[0] = NULL;
}
@@ -3974,13 +3971,8 @@ dfamust (struct dfa *d)
char *tp;
tp = icpyalloc(lmp->right);
- if (tp == NULL)
- goto done;
tp = icatalloc(tp, rmp->left);
- if (tp == NULL)
- goto done;
- lmp->in = enlist(lmp->in, tp,
- strlen(tp));
+ lmp->in = enlist(lmp->in, tp, strlen(tp));
free(tp);
if (lmp->in == NULL)
goto done;