diff --git a/poc/executor/src/lib.rs b/poc/executor/src/lib.rs index 07fbf87..2d318ba 100644 --- a/poc/executor/src/lib.rs +++ b/poc/executor/src/lib.rs @@ -77,8 +77,8 @@ impl XcqExecutor { }; let res = instance.call_typed::<(u32, u32), u64>(&mut self.context, method, (input_ptr, input.len() as u32))?; - let res_ptr = (res >> 32) as u32; - let res_size = (res & 0xffffffff) as u32; + let res_size = (res >> 32) as u32; + let res_ptr = (res & 0xffffffff) as u32; let result = instance .read_memory_into_vec(res_ptr, res_size) .map_err(|e| XcqExecutorError::ExecutionError(polkavm::ExecutionError::Trap(e)))?; diff --git a/poc/guests/pass-custom-type/src/main.rs b/poc/guests/pass-custom-type/src/main.rs index d40b69b..2f5a597 100644 --- a/poc/guests/pass-custom-type/src/main.rs +++ b/poc/guests/pass-custom-type/src/main.rs @@ -50,7 +50,7 @@ extern "C" fn main(ptr: u32, _size: u32) -> u64 { let val = b"test"; let size = core::mem::size_of_val(val); let val_ptr = val.as_ptr(); - (val_ptr as u64) << 32 | size as u64 + (size as u64) << 32 | val_ptr as u64 } 1 => { let val = unsafe { core::ptr::read_volatile((ptr + 1) as *const u8) }; @@ -67,7 +67,7 @@ extern "C" fn main(ptr: u32, _size: u32) -> u64 { } unsafe { core::ptr::write_volatile(ptr as *mut u32, res) }; let size = core::mem::size_of::(); - (ptr as u64) << 32 | size as u64 + (size as u64) << 32 | ptr as u64 } _ => 0, } diff --git a/poc/guests/query-balance-fungibles/src/main.rs b/poc/guests/query-balance-fungibles/src/main.rs index 61cf4a7..cdc2718 100644 --- a/poc/guests/query-balance-fungibles/src/main.rs +++ b/poc/guests/query-balance-fungibles/src/main.rs @@ -36,5 +36,5 @@ extern "C" fn main(ptr: u32, size: u32) -> u64 { unsafe { core::ptr::copy_nonoverlapping(sum_bytes.as_ptr(), ptr, sum_bytes.len()); } - (ptr as u64) << 32 | (sum_bytes.len() as u64) + (sum_bytes.len() as u64) << 32 | (ptr as u64) } diff --git a/poc/guests/query-balance/src/main.rs b/poc/guests/query-balance/src/main.rs index ca3dbcd..e42a6c8 100644 --- a/poc/guests/query-balance/src/main.rs +++ b/poc/guests/query-balance/src/main.rs @@ -31,5 +31,5 @@ extern "C" fn main(ptr: u32, size: u32) -> u64 { unsafe { core::ptr::write_volatile(ptr as *mut u64, sum); } - (ptr as u64) << 32 | (core::mem::size_of::() as u64) + (core::mem::size_of::() as u64) << 32 | (ptr as u64) } diff --git a/xcq-executor/src/lib.rs b/xcq-executor/src/lib.rs index 07fbf87..2d318ba 100644 --- a/xcq-executor/src/lib.rs +++ b/xcq-executor/src/lib.rs @@ -77,8 +77,8 @@ impl XcqExecutor { }; let res = instance.call_typed::<(u32, u32), u64>(&mut self.context, method, (input_ptr, input.len() as u32))?; - let res_ptr = (res >> 32) as u32; - let res_size = (res & 0xffffffff) as u32; + let res_size = (res >> 32) as u32; + let res_ptr = (res & 0xffffffff) as u32; let result = instance .read_memory_into_vec(res_ptr, res_size) .map_err(|e| XcqExecutorError::ExecutionError(polkavm::ExecutionError::Trap(e)))?; diff --git a/xcq-extension/src/lib.rs b/xcq-extension/src/lib.rs index 1e64481..7c289ce 100644 --- a/xcq-extension/src/lib.rs +++ b/xcq-extension/src/lib.rs @@ -75,7 +75,7 @@ impl XcqExecutorContext for Context caller .write_memory(res_ptr, &res_bytes) .map_err(|_| ExtensionError::PolkavmError)?; - Ok(((res_ptr as u64) << 32) | (res_bytes_len as u64)) + Ok(((res_bytes_len as u64) << 32) | (res_ptr as u64)) }; let result = func_with_result(); tracing::trace!("(host call): result: {:?}", result);