From 174879116fd1ed6805137949e763223acd79784c Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Sat, 25 Jan 2025 20:10:36 -0500 Subject: Fix incorrect immutable borrow for EnumerationBuilder --- plugins/dwarf/dwarf_import/src/die_handlers.rs | 2 +- plugins/idb_import/src/types.rs | 2 +- plugins/pdb-ng/src/type_parser.rs | 2 +- plugins/warp/src/convert.rs | 2 +- rust/src/types.rs | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/dwarf/dwarf_import/src/die_handlers.rs b/plugins/dwarf/dwarf_import/src/die_handlers.rs index a2db2fb3..d09645ae 100644 --- a/plugins/dwarf/dwarf_import/src/die_handlers.rs +++ b/plugins/dwarf/dwarf_import/src/die_handlers.rs @@ -104,7 +104,7 @@ pub(crate) fn handle_enum( // DW_AT_const_value // *DW_AT_description - let enumeration_builder = EnumerationBuilder::new(); + let mut enumeration_builder = EnumerationBuilder::new(); let mut tree = unit.entries_tree(Some(entry.offset())).unwrap(); let mut children = tree.root().unwrap().children(); diff --git a/plugins/idb_import/src/types.rs b/plugins/idb_import/src/types.rs index 0a704241..1552049f 100644 --- a/plugins/idb_import/src/types.rs +++ b/plugins/idb_import/src/types.rs @@ -462,7 +462,7 @@ impl Result<(), ()>> TranslateIDBTypes<'_, F> { } fn translate_enum(members: &[(Option>, u64)], bytesize: u64) -> Ref { - let eb = EnumerationBuilder::new(); + let mut eb = EnumerationBuilder::new(); for (i, (name, bytesize)) in members.iter().enumerate() { let name = name .as_ref() diff --git a/plugins/pdb-ng/src/type_parser.rs b/plugins/pdb-ng/src/type_parser.rs index e7f4b06d..1c32bb56 100644 --- a/plugins/pdb-ng/src/type_parser.rs +++ b/plugins/pdb-ng/src/type_parser.rs @@ -1626,7 +1626,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { ))))); } - let enumeration = EnumerationBuilder::new(); + let mut enumeration = EnumerationBuilder::new(); match self.handle_type_index(data.fields, finder)? { Some(ParsedType::FieldList(fields)) => { diff --git a/plugins/warp/src/convert.rs b/plugins/warp/src/convert.rs index acf9aabc..01ba167c 100644 --- a/plugins/warp/src/convert.rs +++ b/plugins/warp/src/convert.rs @@ -470,7 +470,7 @@ pub fn to_bn_type(arch: &A, ty: &Type) -> BNRef { BNType::structure(&builder.finalize()) } TypeClass::Enumeration(c) => { - let builder = BNEnumerationBuilder::new(); + let mut builder = BNEnumerationBuilder::new(); for member in &c.members { // TODO: Add default name? let member_name = member.name.to_owned().unwrap_or("enum_VAL".into()); diff --git a/rust/src/types.rs b/rust/src/types.rs index bd184b18..701fc85a 100644 --- a/rust/src/types.rs +++ b/rust/src/types.rs @@ -1217,7 +1217,7 @@ impl EnumerationBuilder { unsafe { Enumeration::ref_from_raw(BNFinalizeEnumerationBuilder(self.handle)) } } - pub fn append(&self, name: S) -> &Self { + pub fn append(&mut self, name: S) -> &Self { let name = name.into_bytes_with_nul(); unsafe { BNAddEnumerationBuilderMember(self.handle, name.as_ref().as_ptr() as _); @@ -1225,7 +1225,7 @@ impl EnumerationBuilder { self } - pub fn insert(&self, name: S, value: u64) -> &Self { + pub fn insert(&mut self, name: S, value: u64) -> &Self { let name = name.into_bytes_with_nul(); unsafe { BNAddEnumerationBuilderMemberWithValue(self.handle, name.as_ref().as_ptr() as _, value); @@ -1233,7 +1233,7 @@ impl EnumerationBuilder { self } - pub fn replace(&self, id: usize, name: S, value: u64) -> &Self { + pub fn replace(&mut self, id: usize, name: S, value: u64) -> &Self { let name = name.into_bytes_with_nul(); unsafe { BNReplaceEnumerationBuilderMember(self.handle, id, name.as_ref().as_ptr() as _, value); @@ -1241,7 +1241,7 @@ impl EnumerationBuilder { self } - pub fn remove(&self, id: usize) -> &Self { + pub fn remove(&mut self, id: usize) -> &Self { unsafe { BNRemoveEnumerationBuilderMember(self.handle, id); } -- cgit v1.3.1