You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Symptoms: undo skips some previous outputs.
Reason: outputPop() was wrong to assume that the stack was dirty at any time.
In fact output and the top of the stack were equal after each statement.
Therefore the double-pop was insane.
Pop was setting output from the top of the stack, and then discard the top.
Fix: discard stack-top first, then copy new top to output.
The text was updated successfully, but these errors were encountered:
output stack: Remove the redundant dirty-mechanism.
It was a failed attempt to fix the wrong Pop() behaviour:
copy top - discard top.
Instead do: discard top - copy new top.
Symptoms: undo skips some previous outputs.
Reason: outputPop() was wrong to assume that the stack was dirty at any time.
In fact output and the top of the stack were equal after each statement.
Therefore the double-pop was insane.
Pop was setting output from the top of the stack, and then discard the top.
Fix: discard stack-top first, then copy new top to output.
The text was updated successfully, but these errors were encountered: