diff --git a/Cargo.lock b/Cargo.lock index 36747b6d..71e53d4e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3432,7 +3432,6 @@ dependencies = [ name = "solana-program-memory" version = "2.2.0" dependencies = [ - "num-traits", "solana-define-syscall", ] diff --git a/program-memory/Cargo.toml b/program-memory/Cargo.toml index a9c284ee..3caa12dd 100644 --- a/program-memory/Cargo.toml +++ b/program-memory/Cargo.toml @@ -9,9 +9,6 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } -[dependencies] -num-traits = { workspace = true } - [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/program-memory/src/lib.rs b/program-memory/src/lib.rs index edbd546e..f35c7f4e 100644 --- a/program-memory/src/lib.rs +++ b/program-memory/src/lib.rs @@ -11,19 +11,13 @@ pub mod syscalls { } /// Check that two regions do not overlap. -/// -/// Hidden to share with bpf_loader without being part of the API surface. -#[doc(hidden)] -pub fn is_nonoverlapping(src: N, src_len: N, dst: N, dst_len: N) -> bool -where - N: Ord + num_traits::SaturatingSub, -{ +fn is_nonoverlapping(src: usize, src_len: usize, dst: usize, dst_len: usize) -> bool { // If the absolute distance between the ptrs is at least as big as the size of the other, // they do not overlap. if src > dst { - src.saturating_sub(&dst) >= dst_len + src.saturating_sub(dst) >= dst_len } else { - dst.saturating_sub(&src) >= src_len + dst.saturating_sub(src) >= src_len } } @@ -229,7 +223,7 @@ mod tests { for dst in 13..20 { assert!(is_nonoverlapping(10, 3, dst, 3)); } - assert!(is_nonoverlapping::(255, 3, 254, 1)); - assert!(!is_nonoverlapping::(255, 2, 254, 3)); + assert!(is_nonoverlapping(255, 3, 254, 1)); + assert!(!is_nonoverlapping(255, 2, 254, 3)); } }