diff options
author | David Barksdale <amatus.amongus@gmail.com> | 2008-05-15 22:00:26 +0000 |
---|---|---|
committer | David Barksdale <amatus.amongus@gmail.com> | 2008-05-15 22:00:26 +0000 |
commit | 54506c4b495bd680ea4a62e5ab97be51f968cc09 (patch) | |
tree | da951fbbfbbcac074b9488391eabb4733ffa58af | |
parent | cf308c8cdbc3209f31d45f5ed28929f699d9837c (diff) |
There is a bug in tree_process() that mixes the start state with the final
state from the last run of the machine. This can cause extra matches to be
reported.
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | treexpr.c | 1 |
2 files changed, 4 insertions, 0 deletions
@@ -52,6 +52,9 @@ $(LIB)GrokHtml$(DOTSO): $(JNISOURCES) GrokHtml.h $(LIB)treexpr$(DOTSO): $(SOURCES) $(CC) $(LIBS) $(CFLAGS) $(INCL) -shared -o $@ $(SOURCES) +run: run.c $(LIB)treexpr$(DOTSO) treexpr.h + $(CC) $(LIBS) $(CFLAGS) $(INCL) $(LIB)treexpr$(DOTSO) -o $@ run.c + test: $(LIB)GrokHtml$(DOTSO) TestIt.class LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):. $(JAVA) TestIt @@ -990,6 +990,7 @@ int tree_process( struct machine *m, xmlNodePtr node ) m->next_state = zalloc( N( m->next_state, m->states ) * sizeof( *m->next_state )); // our inital current state is E(start) + memset( m->cur_state, 0, N( m->cur_state, m->states ) * sizeof( *m->cur_state )); OR( m->cur_state, m->E[m->start->num], m->states ); // main loop, terminate when we run out of input or when there's no states in the cur_state bitmask |