Skip to content

Commit d536e4a

Browse files
committed
avoid repeating calling arch function
1 parent 4593ddd commit d536e4a

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

rust/src/calling_convention.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -579,11 +579,12 @@ impl CallingConventionBase<CoreArchitecture> for CallingConvention {
579579
unsafe {
580580
let mut count = 0;
581581
let regs = BNGetCallerSavedRegisters(self.handle, &mut count);
582+
let arch = self.arch();
582583

583584
let res = std::slice::from_raw_parts(regs, count)
584585
.iter()
585586
.map(|&id| RegisterId(id))
586-
.filter_map(|r| self.arch().register_from_id(r))
587+
.filter_map(|r| arch.register_from_id(r))
587588
.collect();
588589

589590
BNFreeRegisterList(regs);
@@ -596,11 +597,12 @@ impl CallingConventionBase<CoreArchitecture> for CallingConvention {
596597
unsafe {
597598
let mut count = 0;
598599
let regs = BNGetCalleeSavedRegisters(self.handle, &mut count);
600+
let arch = self.arch();
599601

600602
let res = std::slice::from_raw_parts(regs, count)
601603
.iter()
602604
.map(|&id| RegisterId(id))
603-
.filter_map(|r| self.arch().register_from_id(r))
605+
.filter_map(|r| arch.register_from_id(r))
604606
.collect();
605607

606608
BNFreeRegisterList(regs);
@@ -613,11 +615,12 @@ impl CallingConventionBase<CoreArchitecture> for CallingConvention {
613615
unsafe {
614616
let mut count = 0;
615617
let regs = BNGetIntegerArgumentRegisters(self.handle, &mut count);
618+
let arch = self.arch();
616619

617620
let res = std::slice::from_raw_parts(regs, count)
618621
.iter()
619622
.map(|&id| RegisterId(id))
620-
.filter_map(|r| self.arch().register_from_id(r))
623+
.filter_map(|r| arch.register_from_id(r))
621624
.collect();
622625

623626
BNFreeRegisterList(regs);
@@ -630,11 +633,12 @@ impl CallingConventionBase<CoreArchitecture> for CallingConvention {
630633
unsafe {
631634
let mut count = 0;
632635
let regs = BNGetFloatArgumentRegisters(self.handle, &mut count);
636+
let arch = self.arch();
633637

634638
let res = std::slice::from_raw_parts(regs, count)
635639
.iter()
636640
.map(|&id| RegisterId(id))
637-
.filter_map(|r| self.arch().register_from_id(r))
641+
.filter_map(|r| arch.register_from_id(r))
638642
.collect();
639643

640644
BNFreeRegisterList(regs);

0 commit comments

Comments
 (0)