Skip to content

Conversation

@emesare
Copy link
Member

@emesare emesare commented Dec 7, 2025

This is a draft PR just for visibility, some commits may be dropped, others reworked.

This branch addresses some miscellaneous bugs, as well as code smells such as duplicate APIs and large unstructured modules. The intention with this is to keep breaking changes of well used APIs to a minimum, although APIs which are likely unused by external users (e.g. no known consumer other than internal use like tests or bundled plugins).

APIs inside the architecture module were re-exported after they were moved so this is more or less just a DX change, for those reading the crates documentation or maintaining the architecture module.

@emesare emesare added the Component: Rust API Issue needs changes to the Rust API label Dec 7, 2025
Forgot to call `BNFreeArchitectureAndAddressList`, also use `Location` instead of `ArchAndAddr`.
Use `Location` instead, `arch` can be a nullptr
To keep backwards compatibility for commonly referenced code we re-export them within the architecture module.

Also does some light refactoring of some newly added APIs to keep them more consistent with other parts of the codebase.
There was a TODO there to document that it is optional, we should just wrap it in `Option` instead.
Still need to add a custom architecture for unit tests like in python
- `analysis_info` was causing a double free with function refs, also did not need to be wrapped in a Result
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: Rust API Issue needs changes to the Rust API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants