From d71d1e199382379036dc4760e4edbd5e637e07c3 Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Mon, 17 Jul 2023 10:48:57 -0400 Subject: [PATCH 1/2] aya: remove dead code This logic moved in bb595c4e69ff0c72c8327e7f64d43ca7a4bc16a3. The mutation here prevented the compiler from noticing. --- aya-obj/src/obj.rs | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/aya-obj/src/obj.rs b/aya-obj/src/obj.rs index 3c5ff126..5ac7d3db 100644 --- a/aya-obj/src/obj.rs +++ b/aya-obj/src/obj.rs @@ -889,17 +889,6 @@ impl Object { } fn parse_section(&mut self, section: Section) -> Result<(), ParseError> { - let mut parts = section.name.rsplitn(2, '/').collect::>(); - parts.reverse(); - - if parts.len() == 1 - && (parts[0] == "xdp" - || parts[0] == "sk_msg" - || parts[0] == "sockops" - || parts[0] == "classifier") - { - parts.push(parts[0]); - } self.section_infos .insert(section.name.to_owned(), (section.index, section.size)); match section.kind { From 6f2a8c8a5c47098fb5e5a75ecebdff493d486c97 Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Mon, 17 Jul 2023 10:49:15 -0400 Subject: [PATCH 2/2] aya: avoid an allocation str::rsplitn(2, c) is a special case that can be expressed as str::rsplit_once(c). --- aya-obj/src/obj.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/aya-obj/src/obj.rs b/aya-obj/src/obj.rs index 5ac7d3db..a36eb684 100644 --- a/aya-obj/src/obj.rs +++ b/aya-obj/src/obj.rs @@ -378,12 +378,11 @@ impl FromStr for ProgramSection { // parse the common case, eg "xdp/program_name" or // "sk_skb/stream_verdict/program_name" - let mut parts = section.rsplitn(2, '/').collect::>(); - if parts.len() == 1 { - parts.push(parts[0]); - } - let kind = parts[1]; - let name = parts[0].to_owned(); + let (kind, name) = match section.rsplit_once('/') { + None => (section, section), + Some((kind, name)) => (kind, name), + }; + let name = name.to_owned(); Ok(match kind { "kprobe" => KProbe { name },