I see that initialization isn't needed in build_state_zero().  So remove
it and simplify.
From 6eb06035f4acd7adf6d3fe166471740bd633f6dd Mon Sep 17 00:00:00 2001
From: Norihiro Tanaka <[email protected]>
Date: Sat, 24 May 2014 09:26:31 +0900
Subject: [PATCH] dfa: simplify building intial state

Initialization of members of struct dfa isn't needed in
build_state_zero().  So remove them, and simplify.

* src/dfa.c (build_state_zero): Remove it.
(dfaexec): Call realloc_trans_if_necessary and build_state directly.
---
 src/dfa.c | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/src/dfa.c b/src/dfa.c
index 70dc046..c25322d 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -2896,22 +2896,6 @@ build_state (state_num s, struct dfa *d)
     d->trans[s] = trans;
 }
 
-static void
-build_state_zero (struct dfa *d)
-{
-  /* Initial size of the transition tables; must be positive.  */
-  int initial_tab_size = 1;
-
-  d->tralloc = 0;
-  d->trcount = 0;
-  d->trans = NULL;
-  d->fails = NULL;
-  d->success = NULL;
-  d->newlines = NULL;
-  realloc_trans_if_necessary (d, initial_tab_size);
-  build_state (0, d);
-}
-
 /* Multibyte character handling sub-routines for dfaexec.  */
 
 /* Return values of transit_state_singlebyte, and
@@ -3275,7 +3259,10 @@ dfaexec (struct dfa *d, char const *begin, char *end,
   size_t nlcount = 0;
 
   if (!d->tralloc)
-    build_state_zero (d);
+    {
+      realloc_trans_if_necessary (d, 0);
+      build_state (0, d);
+    }
 
   s = s1 = 0;
   p = mbp = (unsigned char const *) begin;
-- 
1.9.3

Reply via email to