The deallocations of the process arguments are unnecessary, since the memory will be deallocated by arena.deinit(). The deallocations are incorrect, since ArgIterator.next() returns a slice pointing to the iterator's internal buffer, that should be deallocated with args_it.deinit().