41 template <
class state_type_t>
50 template <
class state_type_t>
53 currentstate = c.currentstate;
56 if (nstates && c.stateval) {
57 int size = nstates *
sizeof (state_type_t) *
STATE_NUM;
58 stateval = (state_type_t *) malloc (size);
59 memcpy (stateval, c.stateval, size);
65 template <
class state_type_t>
67 if (stateval) free (stateval);
72 template <
class state_type_t>
74 if (stateval != NULL) free (stateval);
76 stateval = (state_type_t *)
77 calloc (nstates,
sizeof (state_type_t) *
STATE_NUM);
83 template <
class state_type_t>
85 if (nstates && stateval)
86 memset (stateval, 0, nstates *
sizeof (state_type_t) *
STATE_NUM);
93 template <
class state_type_t>
102 template <
class state_type_t>
109 template <
class state_type_t>
111 if (--currentstate < 0) currentstate =
STATE_NUM - 1;
115 template <
class state_type_t>
117 currentstate = (currentstate + 1) &
STATE_MASK;
122 template <
class state_type_t>
124 state_type_t * p = &stateval[state <<
STATE_SHIFT];
130 template <
class state_type_t>
132 for (
int i = 0;
i <
STATE_NUM;
i++) values[
i] = getState (state,
i);