summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r--src/wasm-interpreter.h15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 75f2a8338..4b7d652b4 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -2552,7 +2552,7 @@ private:
// stack traces.
std::vector<Name> functionStack;
- std::unordered_set<size_t> droppedSegments;
+ std::unordered_set<Name> droppedSegments;
struct TableInterfaceInfo {
// The external interface in which the table is defined.
@@ -2642,14 +2642,14 @@ private:
MemoryInit init;
init.memory = segment->memory;
- init.segment = i;
+ init.segment = segment->name;
init.dest = segment->offset;
init.offset = &offset;
init.size = &size;
init.finalize();
DataDrop drop;
- drop.segment = i;
+ drop.segment = segment->name;
drop.finalize();
self()->visit(&init);
@@ -3397,8 +3397,7 @@ public:
NOTE_EVAL1(offset);
NOTE_EVAL1(size);
- assert(curr->segment < wasm.dataSegments.size());
- auto& segment = wasm.dataSegments[curr->segment];
+ auto* segment = wasm.getDataSegment(curr->segment);
Address destVal(dest.getSingleValue().getUnsigned());
Address offsetVal(uint32_t(offset.getSingleValue().geti32()));
@@ -3543,9 +3542,8 @@ public:
switch (curr->op) {
case NewData: {
- assert(curr->segment < wasm.dataSegments.size());
assert(elemType.isNumber());
- const auto& seg = *wasm.dataSegments[curr->segment];
+ const auto& seg = *wasm.getDataSegment(curr->segment);
auto elemBytes = element.getByteSize();
auto end = offset + size * elemBytes;
if ((size != 0ull && droppedSegments.count(curr->segment)) ||
@@ -3560,8 +3558,7 @@ public:
break;
}
case NewElem: {
- assert(curr->segment < wasm.elementSegments.size());
- const auto& seg = *wasm.elementSegments[curr->segment];
+ const auto& seg = *wasm.getElementSegment(curr->segment);
auto end = offset + size;
// TODO: Handle dropped element segments once we support those.
if (end > seg.data.size()) {