mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-14 14:53:03 +00:00
Use hash.h for the state hash table.
* src/LR0.c (STATE_HASH_SIZE, state_hash): Remove. (allocate_storage): Use state_hash_new. (free_storage): Use state_hash_free. (new_state, get_state): Adjust. * src/lalr.h, src/lalr.c (states): Move to... * src/states.h (state_t): Remove the `link' member, no longer used. * src/states.h, src/states.c: here. (state_hash_new, state_hash_free, state_hash_lookup) (state_hash_insert, states_free): New. * src/states.c (state_table, state_compare, state_hash): New. * src/output.c (output_actions): Do not free states now, since we still need to know the final_state number in `prepare', called afterwards. Do it... * src/main.c (main): here: call states_free after `output'.
This commit is contained in:
11
src/output.c
11
src/output.c
@@ -1132,8 +1132,6 @@ output_check (void)
|
||||
static void
|
||||
output_actions (void)
|
||||
{
|
||||
state_number_t i;
|
||||
|
||||
/* That's a poor way to make sure the sizes are properly corelated,
|
||||
in particular the signedness is not taking into account, but it's
|
||||
not useless. */
|
||||
@@ -1165,15 +1163,6 @@ output_actions (void)
|
||||
output_conflicts ();
|
||||
|
||||
output_check ();
|
||||
|
||||
for (i = 0; i < nstates; ++i)
|
||||
{
|
||||
free (states[i]->shifts);
|
||||
XFREE (states[i]->reductions);
|
||||
free (states[i]->errs);
|
||||
free (states[i]);
|
||||
}
|
||||
XFREE (states);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user