diff options
| author | Ryan Snyder <ryan@vector35.com> | 2025-07-03 01:48:11 -0400 |
|---|---|---|
| committer | Ryan Snyder <ryan@vector35.com> | 2025-07-03 04:30:58 -0400 |
| commit | e96a7a078a9909fc1212861c9669e6af0b034e46 (patch) | |
| tree | 412f072f118f7f784e8500f8bb46dfad0354bc82 /function.cpp | |
| parent | 3bfeb0e19d97c71022bb5c50c2a21e129f675e1b (diff) | |
api: indirect branch inlining support
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 12 |
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; } |
