From 89b8af006bc56cb4bf68f12a80b1cfe8e7a353d4 Mon Sep 17 00:00:00 2001 From: Abbas Mashayekh Date: Sat, 6 Mar 2021 03:08:51 +0330 Subject: [reference-types] Support passive elem segments (#3572) Passive element segments do not belong to any table, so the link between Table and elem needs to be weaker; i.e. an elem may have a table in case of active segments, or simply be a collection of function references in case of passive/declarative segments. This PR takes Table::Segment out and turns it into a first class module element just like tables and functions. It also implements early support for parsing, printing, encoding and decoding passive/declarative elem segments. --- src/passes/ReorderFunctions.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/passes/ReorderFunctions.cpp') diff --git a/src/passes/ReorderFunctions.cpp b/src/passes/ReorderFunctions.cpp index 4d02616f0..0c95101a5 100644 --- a/src/passes/ReorderFunctions.cpp +++ b/src/passes/ReorderFunctions.cpp @@ -70,11 +70,9 @@ struct ReorderFunctions : public Pass { for (auto& curr : module->exports) { counts[curr->value]++; } - for (auto& table : module->tables) { - for (auto& segment : table->segments) { - for (auto& curr : segment.data) { - counts[curr]++; - } + for (auto& segment : module->elementSegments) { + for (auto& curr : segment->data) { + counts[curr]++; } } // sort -- cgit v1.2.3