Skip to content

Instantly share code, notes, and snippets.

@niner
Created September 20, 2021 16:23
Show Gist options
  • Save niner/f3b62798b717bce59874d1d388c3765b to your computer and use it in GitHub Desktop.
Save niner/f3b62798b717bce59874d1d388c3765b to your computer and use it in GitHub Desktop.
diff --git a/src/spesh/frame_walker.c b/src/spesh/frame_walker.c
index 4071a97a6..30b66ccb5 100644
--- a/src/spesh/frame_walker.c
+++ b/src/spesh/frame_walker.c
@@ -87,7 +87,7 @@ static void go_to_first_inline(MVMThreadContext *tc, MVMSpeshFrameWalker *fw, MV
}
}
else {
- if (f == tc->cur_frame) {
+ if (f == tc->cur_frame && !fw->started) {
fw->deopt_offset = *(tc->interp_cur_op) - spesh_cand->body.bytecode;
fw->inline_idx = -1;
go_to_next_inline(tc, fw);
@@ -141,8 +141,8 @@ MVMuint32 move_one_caller(MVMThreadContext *tc, MVMSpeshFrameWalker *fw) {
* over). */
MVMuint32 MVM_spesh_frame_walker_next(MVMThreadContext *tc, MVMSpeshFrameWalker *fw) {
if (!fw->started) {
- fw->started = 1;
go_to_first_inline(tc, fw, NULL);
+ fw->started = 1;
return fw->cur_caller_frame ? 1 : 0;
}
else if (fw->traversed) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment