misc cleanup

This commit is contained in:
Brendan Hansknecht 2023-03-15 11:40:32 -07:00
parent 8d5a182f83
commit b8e42b05a2
No known key found for this signature in database
GPG key ID: 0EA784685083E75B
2 changed files with 10 additions and 17 deletions

View file

@ -60,6 +60,9 @@ impl FromWasm32Memory for RocStr {
let str_words: &[u32; 3] = unsafe { std::mem::transmute(&str_bytes) };
let big_elem_ptr = str_words[Builtin::WRAPPER_PTR as usize] as usize;
// If the str is a seamless slice, it's highest bit will be set to 1.
// We need to remove that bit or we will get an incorrect negative length.
// Since wasm length is 32bits, and with i32::MAX (0 followed by all 1s in 32 bit).
let big_length = str_words[Builtin::WRAPPER_LEN as usize] as usize & (i32::MAX as usize);
let big_capacity = str_words[Builtin::WRAPPER_CAPACITY as usize] as usize;