[lua] Fix bug in genlua causing significant slowdown in all loops. #11453
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The condition on line 585 was missing a begin/end block so the generator was unconditionally modifying a variable named
_hx_do_first_*
which was supposed to only exist for do-while loops.Since the code that initializes
_hx_do_first_*
doesn't have this problem, no local variable is created, which means that this bug causes a global variable access for every iteration of every non do-while loop (very bad for performance). Fixing this improved the performance of loops by about 30% in my limited testing. They are now the same speed as writing a loop in Lua by hand.