OnionGrief / Chipollino

преобразования регулярных выражений и конечных автоматов
Other
18 stars 4 forks source link

Leaks fix #312

Closed xendalm closed 9 months ago

xendalm commented 9 months ago

Давно не проверял на утечки, а они неожиданно возникли (@xtoter мы ждем проверку в пайпе 🙂)

@mathhyyn "Локализовал" проблему до https://github.com/OnionGrief/Chipollino/blob/leaks-fix/libs/Objects/src/FiniteAutomaton.cpp#L801 и откатил пока до прошлогодней версии. Нужно найти причину утечек

Очень интересно, почему в add_trap_state и remove_trap_states вообще создавался новый язык) Автомат должен инициализироваться так FiniteAutomaton new_dfa(initial_state, states, language)

image

xendalm commented 9 months ago

Оно починилось

Трансформационный моноид хранил автомат, который прогонялся через remove_trap_states. Раньше этот метод не сохранял язык, поэтому не возникало циклических зависимостей при кэшировании синтаксического моноида.

@mathhyyn нужно проверить, что я не поломал случайно твой код для ловушек