From a13cee564fa734bfdf5f59656d4e84a6075d3b3f Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 17 Apr 2014 21:04:24 -0700 Subject: [PATCH 09/12] dfa: avoid duplicate strlen when allocating memory * src/dfa.c (dfamust): Use xstrdup, not strlen (twice) + xmemdup. --- src/dfa.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index 444af56..f8dbc7f 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -4061,9 +4061,9 @@ dfamust (struct dfa *d) { size_t lrlen = strlen (lmp->right); size_t rllen = strlen (rmp->left); - char *tp = xmalloc (lrlen + rllen + 1); + char *tp = xmalloc (lrlen + rllen); memcpy (tp, lmp->right, lrlen); - memcpy (tp + lrlen, rmp->left, rllen + 1); + memcpy (tp + lrlen, rmp->left, rllen); lmp->in = enlist (lmp->in, tp, lrlen + rllen); free (tp); } @@ -4129,11 +4129,11 @@ dfamust (struct dfa *d) ++mp; } done: - if (strlen (result)) + if (*result) { dm = xmalloc (sizeof *dm); dm->exact = exact; - dm->must = xmemdup (result, strlen (result) + 1); + dm->must = xstrdup (result); dm->next = d->musts; d->musts = dm; } -- 1.9.0