MCPcopy Create free account
hub / github.com/git/git / free_dfa_content

Function free_dfa_content

compat/regex/regcomp.c:607–652  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

605static bitset_t utf8_sb_map;
606#endif /* __GNUC__ >= 3 */
607#endif /* RE_ENABLE_I18N */
608
609
610static void
611free_dfa_content (re_dfa_t *dfa)
612{
613 int i, j;
614
615 if (dfa->nodes)
616 for (i = 0; i < dfa->nodes_len; ++i)
617 free_token (dfa->nodes + i);
618 re_free (dfa->nexts);
619 for (i = 0; i < dfa->nodes_len; ++i)
620 {
621 if (dfa->eclosures != NULL)
622 re_node_set_free (dfa->eclosures + i);
623 if (dfa->inveclosures != NULL)
624 re_node_set_free (dfa->inveclosures + i);
625 if (dfa->edests != NULL)
626 re_node_set_free (dfa->edests + i);
627 }
628 re_free (dfa->edests);
629 re_free (dfa->eclosures);
630 re_free (dfa->inveclosures);
631 re_free (dfa->nodes);
632
633 if (dfa->state_table)
634 for (i = 0; i <= dfa->state_hash_mask; ++i)
635 {
636 struct re_state_table_entry *entry = dfa->state_table + i;
637 for (j = 0; j < entry->num; ++j)
638 {
639 re_dfastate_t *state = entry->array[j];
640 free_state (state);
641 }
642 re_free (entry->array);
643 }
644 re_free (dfa->state_table);
645#ifdef RE_ENABLE_I18N
646 if (dfa->sb_char != utf8_sb_map)
647 re_free (dfa->sb_char);
648#endif
649 re_free (dfa->subexp_map);
650#ifdef DEBUG
651 re_free (dfa->re_str);
652#endif
653
654 re_free (dfa);
655}

Callers 2

regfreeFunction · 0.85
re_compile_internalFunction · 0.85

Calls 2

free_tokenFunction · 0.85
free_stateFunction · 0.85

Tested by

no test coverage detected