diff --git a/src/pattern.c b/src/pattern.c index a581e30..125c08e 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -328,7 +328,7 @@ liblex_result _pattern_build_chain(pattern_chain** into, int* ids, int pattern_i result = _pattern_chain_create(¤t_chain, NULL, NULL); (*index)++; } - } if(string[*index] == '.') { + } else if(string[*index] == '.') { pattern_node* new_node = NULL; _pattern_chain_append_chain_discard(current_chain, &sub_chain); result = _pattern_chain_create(&sub_chain, NULL, NULL); @@ -438,6 +438,8 @@ liblex_result pattern_compile(pattern* ptrn, char* expression, int id){ ptrn->size = ids + 1; free(full_chain); } else { + ptrn->head = NULL; + ptrn->size = 0; if(full_chain){ _pattern_free(full_chain->head, ids); }