PathOfBuildingCommunity / PathOfBuilding

Offline build planner for Path of Exile.
https://pathofbuilding.community
Other
3.97k stars 2.08k forks source link

Fix limited processing flag not persisting through recursions causing crash #8192

Closed Paliak closed 1 month ago

Paliak commented 1 month ago

Fixes #8136

Description of the problem being solved:

The role of the limited processing flag on skills is to prevent infinite recursion loops that eventually cause a crash. The problem is that due to calcs.initEnv re-generating activeSkillList the flag is lost. This causes issues when there are more than one skill requiring such as flag as the application of the flag will alternate allowing for infinite recursion.

The proposed solution moves the flags from skills to a table in the root of the env table allowing for easier copying and querying of the flags deeper into the call stack. This solution is not ideal as preventing the recalculation of the activeSkillList would greatly speed things up but due to many data dependencies i have not found a good way to achieve that.

Steps taken to verify a working solution: