summaryrefslogtreecommitdiff
path: root/include/wabt/interp
diff options
context:
space:
mode:
Diffstat (limited to 'include/wabt/interp')
-rw-r--r--include/wabt/interp/interp-inl.h7
-rw-r--r--include/wabt/interp/interp.h3
2 files changed, 6 insertions, 4 deletions
diff --git a/include/wabt/interp/interp-inl.h b/include/wabt/interp/interp-inl.h
index 1f3402c6..a9ac4a34 100644
--- a/include/wabt/interp/interp-inl.h
+++ b/include/wabt/interp/interp-inl.h
@@ -64,11 +64,12 @@ inline bool MemoryType::classof(const ExternType* type) {
return type->kind == skind;
}
-inline MemoryType::MemoryType(Limits limits)
- : ExternType(ExternKind::Memory), limits(limits) {
+inline MemoryType::MemoryType(Limits limits, uint32_t page_size)
+ : ExternType(ExternKind::Memory), limits(limits), page_size(page_size) {
// Always set max.
if (!limits.has_max) {
- this->limits.max = limits.is_64 ? WABT_MAX_PAGES64 : WABT_MAX_PAGES32;
+ this->limits.max = WABT_BYTES_TO_MIN_PAGES(
+ (limits.is_64 ? UINT64_MAX : UINT32_MAX), page_size);
}
}
diff --git a/include/wabt/interp/interp.h b/include/wabt/interp/interp.h
index 069bedaa..821a5391 100644
--- a/include/wabt/interp/interp.h
+++ b/include/wabt/interp/interp.h
@@ -206,7 +206,7 @@ struct MemoryType : ExternType {
static const ExternKind skind = ExternKind::Memory;
static bool classof(const ExternType* type);
- explicit MemoryType(Limits);
+ explicit MemoryType(Limits, uint32_t);
std::unique_ptr<ExternType> Clone() const override;
@@ -215,6 +215,7 @@ struct MemoryType : ExternType {
std::string* out_msg);
Limits limits;
+ uint32_t page_size;
};
struct GlobalType : ExternType {