Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix rerun bug #340

Merged
merged 2 commits into from
Sep 8, 2024
Merged

Fix rerun bug #340

merged 2 commits into from
Sep 8, 2024

Commits on Sep 7, 2024

  1. Fix rerun bug

    First found when using rye-ebitengine.
    
    Under certain circumstances, this happens when a Rye program calls a native binding, which internally calls a Rye function as a callback.
    
    I'm still not 100% sure how the bug came to be, but here's my theory: Calls to CallFunctionArgsN are nested, meaning we need to build something like a "call stack" to keep track of the "program counter" (here ps.Ser.pos). It is the job of psX to act as the "inner stack frame". Previously, ps was used, which would just override the "outer stack frame's" program counter, causing it to set to position 0, i.e. re-running the program from the start.
    xypwn committed Sep 7, 2024
    Configuration menu
    Copy the full SHA
    65e7c3f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bfbc073 View commit details
    Browse the repository at this point in the history