Skip to content

Commit ebfbed6

Browse files
authored
Merge pull request #5012 from stacks-network/fix/wasm-call-contract-proptests
2 parents 2bfe0a6 + 216363b commit ebfbed6

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

clarity/src/vm/clarity_wasm.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ pub fn call_function<'a, 'b, 'c>(
533533
// Determine how much space is needed for arguments
534534
let mut arg_size = 0;
535535
for arg in func_types.get_arg_types() {
536-
arg_size += get_type_size(arg);
536+
arg_size += get_type_in_memory_size(arg, false);
537537
}
538538
let mut in_mem_offset = offset + arg_size;
539539

@@ -1613,7 +1613,10 @@ fn pass_argument_to_wasm(
16131613
Ok((buffer, offset + written, in_mem_offset + in_mem_written))
16141614
}
16151615
Value::Principal(PrincipalData::Standard(StandardPrincipalData(v, h))) => {
1616-
let bytes: Vec<u8> = std::iter::once(v).chain(h.iter()).copied().collect();
1616+
let mut bytes: Vec<u8> = Vec::with_capacity(22);
1617+
bytes.push(*v);
1618+
bytes.extend(h);
1619+
bytes.push(0);
16171620
let buffer = vec![Val::I32(in_mem_offset), Val::I32(bytes.len() as i32)];
16181621
memory
16191622
.write(&mut store, in_mem_offset as usize, &bytes)

0 commit comments

Comments
 (0)