bug-grep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 05/17] dfa, grep: cleanup if-before-free and cast-of-argument-to-


From: Paolo Bonzini
Subject: [PATCH 05/17] dfa, grep: cleanup if-before-free and cast-of-argument-to-free
Date: Fri, 12 Mar 2010 18:49:06 +0100

* .x-sc_avoid_if_before_free: Remove.
* .x-sc_cast_of_alloca_return_value: Remove.
* .x-sc_cast_of_x_alloc_return_value: Remove.
* .x-sc_cast_of_argument_to_free: Temporarily add src/search.c.
* cfg.mk (local-checks-to-skip): Remove sc_cast_of_argument_to_free.
* src/dfa.c (ifree): Remove.
(dfamust, build_state, transit_state, dfafree): Do not do if-before-free,
do not cast free argument to ptr_t or char *.
(freelist): Call free instead of ifree.
---
        The src/search.c exception will go away later in the series.

 .x-sc_avoid_if_before_free         |    2 -
 .x-sc_cast_of_alloca_return_value  |    1 -
 .x-sc_cast_of_argument_to_free     |    1 +
 .x-sc_cast_of_x_alloc_return_value |    1 -
 cfg.mk                             |    1 -
 src/dfa.c                          |   93 ++++++++++++++----------------------
 6 files changed, 37 insertions(+), 62 deletions(-)
 delete mode 100644 .x-sc_avoid_if_before_free
 delete mode 100644 .x-sc_cast_of_alloca_return_value
 create mode 100644 .x-sc_cast_of_argument_to_free
 delete mode 100644 .x-sc_cast_of_x_alloc_return_value

diff --git a/.x-sc_avoid_if_before_free b/.x-sc_avoid_if_before_free
deleted file mode 100644
index b9b3074..0000000
--- a/.x-sc_avoid_if_before_free
+++ /dev/null
@@ -1,2 +0,0 @@
-^lib/regex\.c$
-^src/dfa\.c$
diff --git a/.x-sc_cast_of_alloca_return_value 
b/.x-sc_cast_of_alloca_return_value
deleted file mode 100644
index 748e1b0..0000000
--- a/.x-sc_cast_of_alloca_return_value
+++ /dev/null
@@ -1 +0,0 @@
-lib/regex.c
diff --git a/.x-sc_cast_of_argument_to_free b/.x-sc_cast_of_argument_to_free
new file mode 100644
index 0000000..3f02e3d
--- /dev/null
+++ b/.x-sc_cast_of_argument_to_free
@@ -0,0 +1 @@
+^src/search\.c$
diff --git a/.x-sc_cast_of_x_alloc_return_value 
b/.x-sc_cast_of_x_alloc_return_value
deleted file mode 100644
index 748e1b0..0000000
--- a/.x-sc_cast_of_x_alloc_return_value
+++ /dev/null
@@ -1 +0,0 @@
-lib/regex.c
diff --git a/cfg.mk b/cfg.mk
index a6d9f80..5eab7c9 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -22,7 +22,6 @@ gpg_key_ID = B9AB9A16
 
 # Tests not to run as part of "make distcheck".
 local-checks-to-skip =                 \
-  sc_cast_of_argument_to_free          \
   sc_error_message_uppercase           \
   sc_m4_quote_check                    \
   sc_makefile_TAB_only_indentation     \
diff --git a/src/dfa.c b/src/dfa.c
index b43dad7..09a3ba4 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -2205,16 +2205,11 @@ build_state (int s, struct dfa *d)
   if (d->trcount >= 1024)
     {
       for (i = 0; i < d->tralloc; ++i)
-       if (d->trans[i])
-         {
-           free((ptr_t) d->trans[i]);
-           d->trans[i] = NULL;
-         }
-       else if (d->fails[i])
-         {
-           free((ptr_t) d->fails[i]);
-           d->fails[i] = NULL;
-         }
+        {
+         free(d->trans[i]);
+         free(d->fails[i]);
+         d->trans[i] = d->fails[i] = NULL;
+       }
       d->trcount = 0;
     }
 
@@ -2666,8 +2661,7 @@ transit_state (struct dfa *d, int s, unsigned char const 
**pp)
       if (rs == TRANSIT_STATE_DONE)
        ++*pp;
 
-      if (match_lens != NULL)
-       free(match_lens);
+      free(match_lens);
       return s1;
     }
 
@@ -2978,66 +2972,58 @@ dfafree (struct dfa *d)
   int i;
   struct dfamust *dm, *ndm;
 
-  free((ptr_t) d->charclasses);
-  free((ptr_t) d->tokens);
+  free(d->charclasses);
+  free(d->tokens);
 
 #ifdef MBS_SUPPORT
   if (MB_CUR_MAX > 1)
     {
-      free((ptr_t) d->multibyte_prop);
+      free(d->multibyte_prop);
       for (i = 0; i < d->nmbcsets; ++i)
        {
          int j;
          struct mb_char_classes *p = &(d->mbcsets[i]);
-         if (p->chars != NULL)
-           free(p->chars);
-         if (p->ch_classes != NULL)
-           free(p->ch_classes);
-         if (p->range_sts != NULL)
-           free(p->range_sts);
-         if (p->range_ends != NULL)
-           free(p->range_ends);
+         free(p->chars);
+         free(p->ch_classes);
+         free(p->range_sts);
+         free(p->range_ends);
 
          for (j = 0; j < p->nequivs; ++j)
            free(p->equivs[j]);
-         if (p->equivs != NULL)
-           free(p->equivs);
+         free(p->equivs);
 
          for (j = 0; j < p->ncoll_elems; ++j)
            free(p->coll_elems[j]);
-         if (p->coll_elems != NULL)
-           free(p->coll_elems);
+         free(p->coll_elems);
        }
-      free((ptr_t) d->mbcsets);
+      free(d->mbcsets);
     }
 #endif /* MBS_SUPPORT */
 
   for (i = 0; i < d->sindex; ++i) {
-    free((ptr_t) d->states[i].elems.elems);
+    free(d->states[i].elems.elems);
 #ifdef MBS_SUPPORT
-    if (d->states[i].mbps.nelem > 0)
-      free((ptr_t) d->states[i].mbps.elems);
+    free(d->states[i].mbps.elems);
 #endif /* MBS_SUPPORT */
   }
-  free((ptr_t) d->states);
+  free(d->states);
   for (i = 0; i < d->tindex; ++i)
-    if (d->follows[i].elems)
-      free((ptr_t) d->follows[i].elems);
-  free((ptr_t) d->follows);
+    free(d->follows[i].elems);
+  free(d->follows);
   for (i = 0; i < d->tralloc; ++i)
-    if (d->trans[i])
-      free((ptr_t) d->trans[i]);
-    else if (d->fails[i])
-      free((ptr_t) d->fails[i]);
-  if (d->realtrans) free((ptr_t) d->realtrans);
-  if (d->fails) free((ptr_t) d->fails);
-  if (d->newlines) free((ptr_t) d->newlines);
-  if (d->success) free((ptr_t) d->success);
+    {
+      free(d->trans[i]);
+      free(d->fails[i]);
+    }
+  free(d->realtrans);
+  free(d->fails);
+  free(d->newlines);
+  free(d->success);
   for (dm = d->musts; dm; dm = ndm)
     {
       ndm = dm->next;
       free(dm->must);
-      free((ptr_t) dm);
+      free(dm);
     }
 }
 
@@ -3166,13 +3152,6 @@ istrstr (char *lookin, char *lookfor)
 }
 
 static void
-ifree (char *cp)
-{
-  if (cp != NULL)
-    free(cp);
-}
-
-static void
 freelist (char **cpp)
 {
   int i;
@@ -3434,7 +3413,7 @@ dfamust (struct dfa *d)
            if (new == NULL)
              goto done;
            freelist(lmp->in);
-           free((char *) lmp->in);
+           free(lmp->in);
            lmp->in = new;
          }
          break;
@@ -3569,11 +3548,11 @@ dfamust (struct dfa *d)
   for (i = 0; i <= d->tindex; ++i)
     {
       freelist(mp[i].in);
-      ifree((char *) mp[i].in);
-      ifree(mp[i].left);
-      ifree(mp[i].right);
-      ifree(mp[i].is);
+      free(mp[i].in);
+      free(mp[i].left);
+      free(mp[i].right);
+      free(mp[i].is);
     }
-  free((char *) mp);
+  free(mp);
 }
 /* vim:set shiftwidth=2: */
-- 
1.6.6






reply via email to

[Prev in Thread] Current Thread [Next in Thread]