summaryrefslogtreecommitdiff
path: root/src/type-checker.cc
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-11-14 18:26:49 -0800
committerGitHub <noreply@github.com>2019-11-14 18:26:49 -0800
commitddcec7c6122bbf0ee82a197fbb739ffcc52b63d9 (patch)
treee89f48409fee032205192906d51c81279c9edf22 /src/type-checker.cc
parentdf55ded934ec80d102dc84225c1e76bbdb8c8f0c (diff)
downloadwabt-ddcec7c6122bbf0ee82a197fbb739ffcc52b63d9.tar.gz
wabt-ddcec7c6122bbf0ee82a197fbb739ffcc52b63d9.tar.bz2
wabt-ddcec7c6122bbf0ee82a197fbb739ffcc52b63d9.zip
reference-types: Add multi-table support to the interpreter (#1218)
This involved plumbing the table argument for `table.init` and `table.copy` all the way through rather than assuming they were always zero. Update the rather complex logic for assigning names to elem segments to handle active elem segments which both name themselves and the table they apply too.
Diffstat (limited to 'src/type-checker.cc')
-rw-r--r--src/type-checker.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/type-checker.cc b/src/type-checker.cc
index 7aa1eac3..d4a18046 100644
--- a/src/type-checker.cc
+++ b/src/type-checker.cc
@@ -641,17 +641,17 @@ Result TypeChecker::OnElemDrop(uint32_t segment) {
return Result::Ok;
}
-Result TypeChecker::OnTableInit(uint32_t segment) {
+Result TypeChecker::OnTableInit(uint32_t table, uint32_t segment) {
return CheckOpcode3(Opcode::TableInit);
}
-Result TypeChecker::OnTableGet(Index segment) {
+Result TypeChecker::OnTableGet(Index table_index) {
Result result = PopAndCheck1Type(Type::I32, "table.get");
PushType(Type::Nullref); // TODO: should be the table's type
return result;
}
-Result TypeChecker::OnTableSet(Index segment) {
+Result TypeChecker::OnTableSet(Index table_index) {
// TODO: anyref here should be the table's type
return PopAndCheck2Types(Type::I32, Type::Anyref, "table.set");
}