Merge branch 'main' of github.com:roc-lang/roc into glue-getters-rtfeldman

This commit is contained in:
Anton-4 2023-03-17 11:34:29 +01:00
commit f1b1aa6a7b
No known key found for this signature in database
GPG key ID: 0971D718C0A9B937
72 changed files with 2496 additions and 1853 deletions

View file

@ -60,7 +60,10 @@ 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;
let big_length = str_words[Builtin::WRAPPER_LEN 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;
let last_byte = str_bytes[11];