diff regexParser/cerium/ppe/Exec.cc @ 303:cc770cd8d000

parallel retrying seach worked
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 08 Feb 2016 11:56:13 +0900
parents 27414e6fb33c
children c48a8671ce34
line wrap: on
line diff
--- a/regexParser/cerium/ppe/Exec.cc	Mon Feb 08 08:59:38 2016 +0900
+++ b/regexParser/cerium/ppe/Exec.cc	Mon Feb 08 11:56:13 2016 +0900
@@ -10,16 +10,12 @@
 /* これは必須 */
 SchedDefineTask1(Exec,blockedGrep);
 
-TSValue blockSearch(TransitionGeneratorPtr tg,Buffer buff,int task_spawned) {
-    TSValue tsv = createTSValue(tg,buff);
-    BlockOutput blk;
-    tsv.blk = &blk;
-    tsv.current = tg->stateStart->tState;
+TSValue blockSearch(TSValue tsv,Buffer buff,int task_spawned) {
+    tsv.current = tsv.tg->stateStart->tState;
     tsv.blk->result = NULL;
     ResultPtr result = NULL;
     tsv.blk->resultEnd = &result;
-    unsigned char *end = tsv.buff.buffend;
-    tsv.buff.buffend = end;
+    tsv.blk->blockBegin = tsv.current;
     tsv = tSearch(tsv);
     tsv.blk->blockEnd = tsv.current;
     addResult(tsv,true,buff.buff,buff.buffend);  // entire buffer
@@ -56,10 +52,13 @@
     Buffer buff;
     buff.buff = buff.buffptr = i_data;
     buff.buffend = buff.buff + length;
-    TSValue tsv = blockSearch(tg,buff,task_spawned);
+    BlockOutput blk;
+    TSValue tsv = createTSValue(tg,buff);
+    tsv.blk = &blk;
+    tsv = blockSearch(tsv,buff,task_spawned);
 //    resultPrint(tsv.result,"Exec");
     o_data[0] = (unsigned long)tsv.blk->result;
-    o_data[1] = (unsigned long)tsv.blk->blockBegin->state;
+    o_data[1] = (unsigned long)tsv.blk->blockBegin->state;  // never used now
     o_data[2] = (unsigned long)tsv.blk->blockEnd->state;
     return 0;
 }