Skip to content

Reentrant script constraints cause crash #842

@luxaritas

Description

@luxaritas

Example: SCRIPT constraint https://eternagame.org/scripts/9794456 in puzzle https://eternagame.org/puzzles/9818702

I believe I broke this in #778, which was actually intending to fix this use case. I believe what's happening is that runScriptInternal is adding a new method to the existing context which is being passed in, which means the end_<sid> method is being overridden, so complete for the first script constraint execution is never called, meaning we wind up in an invalid state with an extra context, etc... All sorts of badness. This should be easily fixable by pushing two contexts, first the one which is passed in, and then the second that just has the new method we need.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions