LinkedList`s removeAll method and default deinit may cause stack overflow
NickMeepo opened this issue · 0 comments
NickMeepo commented
When triggering removeAll or deinit of very long LinkedList ( like 1...10000000 integers storage),you will get stack overflow. The reason is nodes` recursive releasing.
From the image above you will see recursive node deinit pushing into the stack accumulatively and this will cause crash with size increasing.
I suggest to fix this issue by rewriting removeAll, not simply 'self.head = nil', but using a while-loop to releasing each node, and calling removeAll in LinkedList deinit.