summaryrefslogtreecommitdiff
path: root/function.cpp
diff options
context:
space:
mode:
authorRyan Snyder <ryan@vector35.com>2025-07-03 01:48:11 -0400
committerRyan Snyder <ryan@vector35.com>2025-07-03 04:30:58 -0400
commite96a7a078a9909fc1212861c9669e6af0b034e46 (patch)
tree412f072f118f7f784e8500f8bb46dfad0354bc82 /function.cpp
parent3bfeb0e19d97c71022bb5c50c2a21e129f675e1b (diff)
api: indirect branch inlining support
Diffstat (limited to 'function.cpp')
-rw-r--r--function.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/function.cpp b/function.cpp
index 9e7f4986..367dbe80 100644
--- a/function.cpp
+++ b/function.cpp
@@ -1852,13 +1852,15 @@ Ref<Function> Function::GetCalleeForAnalysis(Ref<Platform> platform, uint64_t ad
}
-vector<uint64_t> Function::GetUnresolvedIndirectBranches()
+vector<ArchAndAddr> Function::GetUnresolvedIndirectBranches()
{
size_t count;
- uint64_t* addrs = BNGetUnresolvedIndirectBranches(m_object, &count);
- vector<uint64_t> result;
- result.insert(result.end(), addrs, &addrs[count]);
- BNFreeAddressList(addrs);
+ BNArchitectureAndAddress* addresses = BNGetUnresolvedIndirectBranches(m_object, &count);
+ vector<ArchAndAddr> result;
+ result.reserve(count);
+ for (size_t i = 0; i < count; i++)
+ result.push_back({new CoreArchitecture(addresses[i].arch), addresses[i].address});
+ BNFreeArchitectureAndAddressList(addresses);
return result;
}