From bf9a9c8ed89cb253ff7994b61275f973234097af Mon Sep 17 00:00:00 2001 From: Kevin Heavey Date: Mon, 10 Feb 2025 14:59:14 +0400 Subject: [PATCH 1/3] make is_nonoverlapping private and remove num-traits dep --- Cargo.lock | 1 - program-memory/Cargo.toml | 3 --- program-memory/src/lib.rs | 11 +++-------- 3 files changed, 3 insertions(+), 12 deletions(-) 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..1d52e8dc 100644 --- a/program-memory/src/lib.rs +++ b/program-memory/src/lib.rs @@ -11,19 +11,14 @@ 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 } } From e432d027c6f8701e362bf7c473fce657037e764a Mon Sep 17 00:00:00 2001 From: Kevin Heavey Date: Mon, 10 Feb 2025 15:19:49 +0400 Subject: [PATCH 2/3] fix type in test --- program-memory/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/program-memory/src/lib.rs b/program-memory/src/lib.rs index 1d52e8dc..1b6d7281 100644 --- a/program-memory/src/lib.rs +++ b/program-memory/src/lib.rs @@ -224,7 +224,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)); } } From 68bdf83b64439143dd252ee35d0dee612d4043ef Mon Sep 17 00:00:00 2001 From: Kevin Heavey Date: Mon, 10 Feb 2025 15:24:16 +0400 Subject: [PATCH 3/3] fmt --- program-memory/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/program-memory/src/lib.rs b/program-memory/src/lib.rs index 1b6d7281..f35c7f4e 100644 --- a/program-memory/src/lib.rs +++ b/program-memory/src/lib.rs @@ -11,8 +11,7 @@ pub mod syscalls { } /// Check that two regions do not overlap. -fn is_nonoverlapping(src: usize, src_len: usize, dst: usize, dst_len: usize) -> bool -{ +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 {