changed flood fill function to prevent stack overflow crashes
authorHolger Schemel <info@artsoft.org>
Sat, 1 May 2021 13:27:03 +0000 (15:27 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 1 May 2021 13:37:00 +0000 (15:37 +0200)
commit4300ae2c7fc947ca53611d0fe78c3274540dee20
tree13032095041d84fe793ff19c606b03d1b16ddbb6
parent4c932cc05644fcd223bdb1b1f4706dcfdd8c7939
changed flood fill function to prevent stack overflow crashes

The previous implementation of the flood fill function (as used in the
level editor) used recursion, which could cause the program to crash
on some systems when using it with maximum level size. This was caused
by a stack overflow on systems that use a stack size not large enough
for the deep recursion involved in such cases. (Such crashes happened
on Windows systems, which usually have a stack size of 1 MB, while it
did not happen on Linux systems, which usually have 8 MB stack size.)

The new flood fill function which uses an iterative algorithm does not
have this problem (as the memory used for it is not on the stack).
src/tools.c