diff options
Diffstat (limited to 'include/wabt/interp')
-rw-r--r-- | include/wabt/interp/interp-inl.h | 7 | ||||
-rw-r--r-- | include/wabt/interp/interp.h | 3 |
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 { |