Name Table and Memory's initial field minimum and make it u32.

The spec has switched to calling the "initial" field the "minimum" field
because when linear memory is imported, it may initially be greater than
the "initial" value.

Making it u32 instead of usize will help avoid accidental host-specific
behavior.
This commit is contained in:
Dan Gohman
2018-11-29 05:48:24 -08:00
committed by Benjamin Bouvier
parent ba48fd2223
commit 416f8c094d
2 changed files with 12 additions and 12 deletions

View File

@@ -82,8 +82,8 @@ pub fn parse_import_section<'data>(
}) => { }) => {
environ.declare_memory_import( environ.declare_memory_import(
Memory { Memory {
pages_count: memlimits.initial as usize, minimum: memlimits.initial,
maximum: memlimits.maximum.map(|x| x as usize), maximum: memlimits.maximum,
shared, shared,
}, },
module_name, module_name,
@@ -108,8 +108,8 @@ pub fn parse_import_section<'data>(
Ok(t) => TableElementType::Val(t), Ok(t) => TableElementType::Val(t),
Err(()) => TableElementType::Func(), Err(()) => TableElementType::Func(),
}, },
size: tab.limits.initial as usize, minimum: tab.limits.initial,
maximum: tab.limits.maximum.map(|x| x as usize), maximum: tab.limits.maximum,
}, },
module_name, module_name,
field_name, field_name,
@@ -144,8 +144,8 @@ pub fn parse_table_section(
Ok(t) => TableElementType::Val(t), Ok(t) => TableElementType::Val(t),
Err(()) => TableElementType::Func(), Err(()) => TableElementType::Func(),
}, },
size: table.limits.initial as usize, minimum: table.limits.initial,
maximum: table.limits.maximum.map(|x| x as usize), maximum: table.limits.maximum,
}); });
} }
Ok(()) Ok(())
@@ -159,8 +159,8 @@ pub fn parse_memory_section(
for entry in memories { for entry in memories {
let memory = entry?; let memory = entry?;
environ.declare_memory(Memory { environ.declare_memory(Memory {
pages_count: memory.limits.initial as usize, minimum: memory.limits.initial,
maximum: memory.limits.maximum.map(|x| x as usize), maximum: memory.limits.maximum,
shared: memory.shared, shared: memory.shared,
}); });
} }

View File

@@ -82,9 +82,9 @@ pub struct Table {
/// The type of data stored in elements of the table. /// The type of data stored in elements of the table.
pub ty: TableElementType, pub ty: TableElementType,
/// The minimum number of elements in the table. /// The minimum number of elements in the table.
pub size: usize, pub minimum: u32,
/// The maximum number of elements in the table. /// The maximum number of elements in the table.
pub maximum: Option<usize>, pub maximum: Option<u32>,
} }
/// WebAssembly table element. Can be a function or a scalar type. /// WebAssembly table element. Can be a function or a scalar type.
@@ -98,9 +98,9 @@ pub enum TableElementType {
#[derive(Debug, Clone, Copy)] #[derive(Debug, Clone, Copy)]
pub struct Memory { pub struct Memory {
/// The minimum number of pages in the memory. /// The minimum number of pages in the memory.
pub pages_count: usize, pub minimum: u32,
/// The maximum number of pages in the memory. /// The maximum number of pages in the memory.
pub maximum: Option<usize>, pub maximum: Option<u32>,
/// Whether the memory may be shared between multiple threads. /// Whether the memory may be shared between multiple threads.
pub shared: bool, pub shared: bool,
} }