summaryrefslogtreecommitdiff
path: root/wasm/machine.c
diff options
context:
space:
mode:
authorYuta Saito <kateinoigakukun@gmail.com>2022-11-05 16:10:35 +0000
committerYuta Saito <kateinoigakukun@gmail.com>2022-11-06 05:03:21 +0900
commit3a6cdeda89280ade714f158830acee88fb36306d (patch)
tree91a912f319883c125f60b2c9d25f0c76c52dc2d7 /wasm/machine.c
parent267452e6fed5d31dcad3c20970f74eec009dc03f (diff)
downloadruby-3a6cdeda89280ade714f158830acee88fb36306d.tar.gz
[wasm] Scan machine stack based on `ec->machine.stack_{start,end}`
fiber machine stack is placed outside of C stack allocated by wasm-ld, so highest stack address recorded by `rb_wasm_record_stack_base` is invalid when running on non-main fiber. Therefore, we should scan `stack_{start,end}` which always point a valid stack range in any context.
Diffstat (limited to 'wasm/machine.c')
-rw-r--r--wasm/machine.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/wasm/machine.c b/wasm/machine.c
index 238041f93e..2ca8462502 100644
--- a/wasm/machine.c
+++ b/wasm/machine.c
@@ -49,10 +49,10 @@ rb_wasm_record_stack_base(void)
return 0;
}
-void
-_rb_wasm_scan_stack(rb_wasm_scan_func scan, void *current)
+void *
+rb_wasm_stack_get_base(void)
{
- scan(current, rb_wasm_stack_base);
+ return rb_wasm_stack_base;
}
void *