Lines Matching defs:stack
15 match. This can be spectacularly expensive and may run out of stack
98 #define BT_STACK_WIDE_IN(_str_wide) stack->item.str_wide = (_str_wide)
99 #define BT_STACK_WIDE_OUT (str_wide) = stack->item.str_wide
106 #define BT_STACK_MBSTATE_IN stack->item.mbstate = (mbstate)
107 #define BT_STACK_MBSTATE_OUT (mbstate) = stack->item.mbstate
129 if (!stack->next) \
144 s->prev = stack; \
159 stack->next = s; \
160 stack = s; \
163 stack = stack->next; \
164 stack->item.pos = (_pos); \
165 stack->item.str_byte = (_str_byte); \
167 stack->item.state = (_state); \
168 stack->item.state_id = (_state_id); \
169 stack->item.next_c = (_next_c); \
171 stack->item.tags[i] = (_tags)[i]; \
180 assert(stack->prev); \
181 pos = stack->item.pos; \
184 str_byte = stack->item.str_byte; \
186 state = stack->item.state; \
187 next_c = stack->item.next_c; \
189 tags[i] = stack->item.tags[i]; \
191 stack = stack->prev; \
240 /* Memory allocator to for allocating the backtracking stack. */
243 /* The backtracking stack. */
244 tre_backtrack_t stack;
256 stack = tre_bt_mem_alloc(mem, sizeof(*stack));
257 if (!stack)
262 stack->prev = NULL;
263 stack->next = NULL;
356 stack->item.tags[*tmp++] = pos;
567 push this transition in the backtracking stack so we can
576 stack->item.tags[*tmp] = pos;
579 the stack small! */
600 if (stack->prev)
603 if (stack->item.state->assertions && ASSERT_BACKREF)
606 stack->item.state_id));
607 states_seen[stack->item.state_id] = 0;