diff regexParser/threadedSearch.cc @ 275:8879eb8c64a8

remove segmentation fault
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Sat, 30 Jan 2016 19:06:41 +0900
parents 5aa9d01926f1
children 7b4bcc7b5ae6
line wrap: on
line diff
--- a/regexParser/threadedSearch.cc	Fri Jan 29 20:41:34 2016 +0900
+++ b/regexParser/threadedSearch.cc	Sat Jan 30 19:06:41 2016 +0900
@@ -39,6 +39,13 @@
         ccvSize++;
     }
     tState->ccvSize = ccvSize;
+    if (state->accept) {
+        tState->stateSkip = tg->stateMatch;
+        tState->stateContinue = tg->stateNothing;
+    } else {
+        tState->stateSkip = tg->stateSkip;
+        tState->stateContinue = tg->stateNothing;
+    }
     if (ccvSize == 0) return tState;
     else tState->ccv = (ccv*)malloc(sizeof(ccv)*ccvSize);
     ccw = createCharClassWalker(state->cc);
@@ -55,13 +62,6 @@
         ccv->w = cc->cond.w;
     }
     free(ccw);
-    if (state->accept) {
-        tState->stateSkip = tg->stateMatch;
-        tState->stateContinue = tg->stateNothing;
-    } else {
-        tState->stateSkip = tg->stateSkip;
-        tState->stateContinue = tg->stateNothing;
-    }
     return tState;
 }