/*
- * Copyright (C) 1994, Index Data I/S
+ * Copyright (C) 1994-1999, Index Data
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: states.c,v $
- * Revision 1.2 1995-01-24 16:00:23 adam
+ * Revision 1.6 1999-02-02 14:50:14 adam
+ * Updated WIN32 code specific sections. Changed header.
+ *
+ * Revision 1.5 1996/10/29 13:57:31 adam
+ * Include of zebrautl.h instead of alexutil.h.
+ *
+ * Revision 1.4 1995/09/04 12:33:28 adam
+ * Various cleanup. YAZ util used instead.
+ *
+ * Revision 1.3 1995/01/25 11:30:51 adam
+ * Simple error reporting when parsing regular expressions.
+ * Memory usage reduced.
+ *
+ * Revision 1.2 1995/01/24 16:00:23 adam
* Added -ansi to CFLAGS.
* Some changes to the dfa module.
*
#include <stdlib.h>
#include <string.h>
-#include <util.h>
#include "dfap.h"
#include "imalloc.h"
-#define DFA_CHUNK 200
-#define TRAN_CHUNK 800
+#define DFA_CHUNK 40
+#define TRAN_CHUNK 100
int init_DFA_states (struct DFA_states **dfasp, SetType st, int hash)
{
struct DFA_trans *tm, *tm1;
assert (dfas);
- ifree (dfas->hasharray);
+ if (dfas->hasharray)
+ ifree (dfas->hasharray);
ifree (dfas->sortarray);
for (tm=dfas->transmem; tm; tm=tm1)
assert (dfas);
assert (*s);
+ assert (dfas->hasharray);
sip = dfas->hasharray + (hash_Set (dfas->st, *s) % dfas->hash);
for (si = *sip; si; si=si->link)
if (eq_Set (dfas->st, si->set, *s))
imalloc (sizeof(struct DFA_state *)*dfas->no);
for (s = dfas->marked; s; s=s->next)
dfas->sortarray[s->no] = s;
+ ifree (dfas->hasharray);
+ dfas->hasharray = NULL;
}