fix a loop in setupLR

This commit is contained in:
Sven M. Hallberg 2013-01-10 01:04:04 +01:00
parent dffe47bf57
commit 63dbf83b4d

View file

@ -83,10 +83,12 @@ void setupLR(const HParser *p, HParseState *state, HLeftRec *rec_detect) {
rec_detect->head = some; rec_detect->head = some;
} }
assert(state->lr_stack->head != NULL); assert(state->lr_stack->head != NULL);
HLeftRec *lr = state->lr_stack->head->elem; HSlistNode *head = state->lr_stack->head;
while (lr && lr->rule != p) { HLeftRec *lr;
while (head && (lr = head->elem)->rule != p) {
lr->head = rec_detect->head; lr->head = rec_detect->head;
h_slist_push(lr->head->involved_set, (void*)lr->rule); h_slist_push(lr->head->involved_set, (void*)lr->rule);
head = head->next;
} }
} }