mirror of
https://github.com/tlsnotary/wasm-bindgen.git
synced 2026-01-09 21:58:02 -05:00
Use table.fill in externref-xform (TODO) (#3446)
This commit is contained in:
@@ -652,19 +652,12 @@ impl Transform<'_> {
|
||||
// Note that we pave over all our stack slots with `ref.null` to ensure
|
||||
// that the table doesn't accidentally hold a strong reference to items
|
||||
// no longer in use by our wasm instance.
|
||||
//
|
||||
// TODO: use `table.fill` once that's spec'd
|
||||
if externref_stack > 0 {
|
||||
for i in 0..externref_stack {
|
||||
body.local_get(fp);
|
||||
if i > 0 {
|
||||
body.i32_const(i).binop(BinaryOp::I32Add);
|
||||
}
|
||||
body.ref_null(ValType::Externref);
|
||||
body.table_set(self.table);
|
||||
}
|
||||
|
||||
body.local_get(fp)
|
||||
.ref_null(ValType::Externref)
|
||||
.i32_const(externref_stack)
|
||||
.table_fill(self.table)
|
||||
.local_get(fp)
|
||||
.i32_const(externref_stack)
|
||||
.binop(BinaryOp::I32Add)
|
||||
.global_set(self.stack_pointer);
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
call $foo
|
||||
local.get 1
|
||||
ref.null extern
|
||||
table.set 0
|
||||
i32.const 1
|
||||
table.fill 0
|
||||
local.get 1
|
||||
i32.const 1
|
||||
i32.add
|
||||
|
||||
@@ -34,7 +34,8 @@
|
||||
call $a
|
||||
local.get 5
|
||||
ref.null extern
|
||||
table.set 0
|
||||
i32.const 1
|
||||
table.fill 0
|
||||
local.get 5
|
||||
i32.const 1
|
||||
i32.add
|
||||
|
||||
Reference in New Issue
Block a user