Skip to content

Commit 48cec42

Browse files
rbranemesare
authored andcommitted
Update IDB import to idb-rs 0.1.9
1 parent 286d265 commit 48cec42

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugins/idb_import/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ crate-type = ["cdylib"]
1111
anyhow = { version = "1.0.86", features = ["backtrace"] }
1212
binaryninja.workspace = true
1313
binaryninjacore-sys.workspace = true
14-
idb-rs = { git = "https://github.com/Vector35/idb-rs", tag = "0.1.8" }
15-
log = "0.4"
14+
idb-rs = { git = "https://github.com/Vector35/idb-rs", tag = "0.1.9" }
15+
log = "0.4"

plugins/idb_import/src/types.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,8 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> {
219219
};
220220
let mut partial_error_args = vec![];
221221
let mut bn_args = Vec::with_capacity(fun.args.len());
222-
for (i, (arg_name, arg_type, _arg_loc)) in fun.args.iter().enumerate() {
223-
let arg = match self.translate_type(arg_type) {
222+
for (i, fun_arg) in fun.args.iter().enumerate() {
223+
let arg = match self.translate_type(&fun_arg.ty) {
224224
TranslateTypeResult::Translated(trans) => trans,
225225
TranslateTypeResult::PartiallyTranslated(trans, error) => {
226226
is_partial = true;
@@ -242,7 +242,8 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> {
242242
};
243243
// TODO create location from `arg_loc`?
244244
let loc = None;
245-
let name = arg_name
245+
let name = fun_arg
246+
.name
246247
.as_ref()
247248
.map(|name| name.as_utf8_lossy().to_string())
248249
.unwrap_or_else(|| format!("arg_{i}"));
@@ -443,11 +444,11 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> {
443444
let mut structure = StructureBuilder::new();
444445
structure.structure_type(StructureType::UnionStructureType);
445446
let mut errors = vec![];
446-
for (i, (member_name, member_type)) in ty_union.members.iter().enumerate() {
447+
for (i, member) in ty_union.members.iter().enumerate() {
447448
// bitfields can be translated into complete fields
448-
let mem = match &member_type.type_variant {
449+
let mem = match &member.ty.type_variant {
449450
TILTypeVariant::Bitfield(field) => field_from_bytes(field.nbytes.get().into()),
450-
_ => match self.translate_type(member_type) {
451+
_ => match self.translate_type(&member.ty) {
451452
TranslateTypeResult::Translated(ty) => ty,
452453
TranslateTypeResult::Error(error) => {
453454
errors.push((i, error));
@@ -464,7 +465,8 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> {
464465
},
465466
};
466467

467-
let name = member_name
468+
let name = member
469+
.name
468470
.as_ref()
469471
.map(|name| name.as_utf8_lossy().to_string())
470472
.unwrap_or_else(|| format!("member_{i}"));
@@ -484,12 +486,13 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> {
484486

485487
fn translate_enum(&self, ty_enum: &TILEnum) -> Ref<Type> {
486488
let mut eb = EnumerationBuilder::new();
487-
for (i, (name, member_value)) in ty_enum.members.iter().enumerate() {
488-
let name = name
489+
for (i, member) in ty_enum.members.iter().enumerate() {
490+
let name = member
491+
.name
489492
.as_ref()
490493
.map(|name| name.as_utf8_lossy().to_string())
491494
.unwrap_or_else(|| format!("member_{i}"));
492-
eb.insert(name, *member_value);
495+
eb.insert(name, member.value);
493496
}
494497
Type::enumeration(
495498
&eb.finalize(),

0 commit comments

Comments
 (0)