From f654612b2a92154f6543c94ab9dc5f050b773d83 Mon Sep 17 00:00:00 2001 From: link2xt Date: Thu, 8 Apr 2021 22:45:13 +0300 Subject: [PATCH] fix(sqlite): do not cast pointers to i32 64-bit pointers can't be casted to i32 correctly. It does not seem to cause problems on amd64 as long as both pointers reside in the same page, but it's not correct generally. --- sqlx-core/src/sqlite/statement/virtual.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sqlx-core/src/sqlite/statement/virtual.rs b/sqlx-core/src/sqlite/statement/virtual.rs index 11072c1a02..6f0b42c708 100644 --- a/sqlx-core/src/sqlite/statement/virtual.rs +++ b/sqlx-core/src/sqlite/statement/virtual.rs @@ -88,8 +88,8 @@ fn prepare( // statement in zSql. these routines only compile the first statement, // so tail is left pointing to what remains un-compiled. - let n = (tail as i32) - (query_ptr as i32); - query.advance(n as usize); + let n = (tail as usize) - (query_ptr as usize); + query.advance(n); if let Some(handle) = NonNull::new(statement_handle) { return Ok(Some(StatementHandle(handle)));