diff options
-rw-r--r-- | src/ir/module-utils.h | 4 | ||||
-rw-r--r-- | src/wasm.h | 15 | ||||
-rw-r--r-- | test/passes/roundtrip.txt | 4 | ||||
-rw-r--r-- | test/passes/roundtrip.wast | 5 |
4 files changed, 26 insertions, 2 deletions
diff --git a/src/ir/module-utils.h b/src/ir/module-utils.h index d84648dfd..014fcb34c 100644 --- a/src/ir/module-utils.h +++ b/src/ir/module-utils.h @@ -135,8 +135,8 @@ inline void clearModule(Module& wasm) { wasm.functions.clear(); wasm.globals.clear(); wasm.events.clear(); - wasm.table.segments.clear(); - wasm.memory.segments.clear(); + wasm.table.clear(); + wasm.memory.clear(); wasm.start = Name(); wasm.userSections.clear(); wasm.debugInfoFileNames.clear(); diff --git a/src/wasm.h b/src/wasm.h index cc2070eb2..0ed4f27bd 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -1241,6 +1241,13 @@ public: Table() { name = Name::fromInt(0); } bool hasMax() { return max != kUnlimitedSize; } + void clear() { + exists = false; + name = ""; + initial = 0; + max = kMaxSize; + segments.clear(); + } }; class Memory : public Importable { @@ -1284,6 +1291,14 @@ public: Memory() { name = Name::fromInt(0); } bool hasMax() { return max != kUnlimitedSize; } + void clear() { + exists = false; + name = ""; + initial = 0; + max = kMaxSize; + segments.clear(); + shared = false; + } }; class Global : public Importable { diff --git a/test/passes/roundtrip.txt b/test/passes/roundtrip.txt index bcd8b186a..fa1c44984 100644 --- a/test/passes/roundtrip.txt +++ b/test/passes/roundtrip.txt @@ -5,3 +5,7 @@ (unreachable) ) ) +(module + (memory $ 1 1) + (table $ 0 funcref) +) diff --git a/test/passes/roundtrip.wast b/test/passes/roundtrip.wast index f562ba779..7d1eb174b 100644 --- a/test/passes/roundtrip.wast +++ b/test/passes/roundtrip.wast @@ -9,3 +9,8 @@ (nop) ) ) + +(module + (memory 1 1) + (table 0 funcref) +) |