Old days brought forward. Remember mark/release? With combo of code macros and open arrays using Lazarus/ FPC:
mark_begin // after allocs,creates
[parse1, sl1, sl2]
mark_end
... lines of code ...
release // end of proc, frees everything you marked allocated