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.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 7b17e344b..f682e89a2 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -2604,19 +2604,18 @@ private:
offset.finalize();
// apply active memory segments
- for (size_t i = 0, e = wasm.memory.segments.size(); i < e; ++i) {
- Memory::Segment& segment = wasm.memory.segments[i];
- if (segment.isPassive) {
+ for (size_t i = 0, e = wasm.dataSegments.size(); i < e; ++i) {
+ auto& segment = wasm.dataSegments[i];
+ if (segment->isPassive) {
continue;
}
-
Const size;
- size.value = Literal(uint32_t(segment.data.size()));
+ size.value = Literal(uint32_t(segment->data.size()));
size.finalize();
MemoryInit init;
init.segment = i;
- init.dest = segment.offset;
+ init.dest = segment->offset;
init.offset = &offset;
init.size = &size;
init.finalize();
@@ -3303,8 +3302,8 @@ public:
NOTE_EVAL1(offset);
NOTE_EVAL1(size);
- assert(curr->segment < wasm.memory.segments.size());
- Memory::Segment& segment = wasm.memory.segments[curr->segment];
+ assert(curr->segment < wasm.dataSegments.size());
+ auto& segment = wasm.dataSegments[curr->segment];
Address destVal(dest.getSingleValue().getUnsigned());
Address offsetVal(uint32_t(offset.getSingleValue().geti32()));
@@ -3313,7 +3312,7 @@ public:
if (offsetVal + sizeVal > 0 && droppedSegments.count(curr->segment)) {
trap("out of bounds segment access in memory.init");
}
- if ((uint64_t)offsetVal + sizeVal > segment.data.size()) {
+ if ((uint64_t)offsetVal + sizeVal > segment->data.size()) {
trap("out of bounds segment access in memory.init");
}
auto* inst = getMemoryInstance();
@@ -3324,7 +3323,7 @@ public:
Literal addr(destVal + i);
inst->externalInterface->store8(
inst->getFinalAddressWithoutOffset(addr, 1),
- segment.data[offsetVal + i]);
+ segment->data[offsetVal + i]);
}
return {};
}