Add unsigned access methods to VMGlobalDefinition.
This commit is contained in:
@@ -329,7 +329,7 @@ fn check_table_init_bounds(instance: &mut Instance) -> Result<(), InstantiationE
|
|||||||
} else {
|
} else {
|
||||||
unsafe { instance.vmctx.imported_global(base).from }
|
unsafe { instance.vmctx.imported_global(base).from }
|
||||||
};
|
};
|
||||||
start += unsafe { *(&*global).as_i32() } as u32 as usize;
|
start += unsafe { *(&*global).as_u32() } as usize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Refactor this.
|
// TODO: Refactor this.
|
||||||
@@ -368,7 +368,7 @@ fn check_memory_init_bounds(
|
|||||||
} else {
|
} else {
|
||||||
unsafe { instance.vmctx.imported_global(base).from }
|
unsafe { instance.vmctx.imported_global(base).from }
|
||||||
};
|
};
|
||||||
start += unsafe { *(&*global).as_i32() } as u32 as usize;
|
start += unsafe { *(&*global).as_u32() } as usize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Refactor this.
|
// TODO: Refactor this.
|
||||||
|
|||||||
@@ -295,6 +295,18 @@ impl VMGlobalDefinition {
|
|||||||
&mut *(self.storage.as_mut().as_mut_ptr() as *mut u8 as *mut i32)
|
&mut *(self.storage.as_mut().as_mut_ptr() as *mut u8 as *mut i32)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return a reference to the value as a u32.
|
||||||
|
#[allow(clippy::cast_ptr_alignment)]
|
||||||
|
pub unsafe fn as_u32(&self) -> &u32 {
|
||||||
|
&*(self.storage.as_ref().as_ptr() as *const u8 as *const u32)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Return a mutable reference to the value as an u32.
|
||||||
|
#[allow(clippy::cast_ptr_alignment)]
|
||||||
|
pub unsafe fn as_u32_mut(&mut self) -> &mut u32 {
|
||||||
|
&mut *(self.storage.as_mut().as_mut_ptr() as *mut u8 as *mut u32)
|
||||||
|
}
|
||||||
|
|
||||||
/// Return a reference to the value as an i64.
|
/// Return a reference to the value as an i64.
|
||||||
#[allow(clippy::cast_ptr_alignment)]
|
#[allow(clippy::cast_ptr_alignment)]
|
||||||
pub unsafe fn as_i64(&self) -> &i64 {
|
pub unsafe fn as_i64(&self) -> &i64 {
|
||||||
@@ -307,6 +319,18 @@ impl VMGlobalDefinition {
|
|||||||
&mut *(self.storage.as_mut().as_mut_ptr() as *mut u8 as *mut i64)
|
&mut *(self.storage.as_mut().as_mut_ptr() as *mut u8 as *mut i64)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return a reference to the value as an u64.
|
||||||
|
#[allow(clippy::cast_ptr_alignment)]
|
||||||
|
pub unsafe fn as_u64(&self) -> &u64 {
|
||||||
|
&*(self.storage.as_ref().as_ptr() as *const u8 as *const u64)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Return a mutable reference to the value as an u64.
|
||||||
|
#[allow(clippy::cast_ptr_alignment)]
|
||||||
|
pub unsafe fn as_u64_mut(&mut self) -> &mut u64 {
|
||||||
|
&mut *(self.storage.as_mut().as_mut_ptr() as *mut u8 as *mut u64)
|
||||||
|
}
|
||||||
|
|
||||||
/// Return a reference to the value as an f32.
|
/// Return a reference to the value as an f32.
|
||||||
#[allow(clippy::cast_ptr_alignment)]
|
#[allow(clippy::cast_ptr_alignment)]
|
||||||
pub unsafe fn as_f32(&self) -> &f32 {
|
pub unsafe fn as_f32(&self) -> &f32 {
|
||||||
|
|||||||
Reference in New Issue
Block a user