Vector35 / Vector35/binaryninja-api
Sidebar pointer lifetime (UI-Documentation)
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
Is this a general concept that needs to be documented or a specific API?
UI -> Sidebar
What concept or API needs more documentation?
I am mostly interested in Sidebar, SidebarWidget and SidebarWidgetType.
Is this documentation related to a specific API?
No, since UI code is not documented at all.
Are there any known examples of people using this API/concept?
The example hellosidebar.py and the headers for all internal sidebars (e.g. StringsViewSidebarWidget)
How i got here
I want to implement a custom sidebar in Rust. I started with writing the python example in C++, which leaves me with a few basic questions:
- Who is responsible for deleting the
SidebarWidget*returned in the overload forSidebarWidgetType::createWidgetand when is it deleted? - Who is responsible for deleting the
SidebarWidgetType*registered withSidebar::addSidebarWidgetType()and when is it deleted? - In General: Who is responsible for the pointers created using the UI-API?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with python/examples/hellosidebar.py and the Sidebar, SidebarWidget, and SidebarWidgetType declarations, including the internal sidebar example in ui/stringsview.h. Trace the documented API ownership and destruction behavior for created and registered pointers, then update the relevant UI API documentation so each lifetime question has an explicit answer.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python, rust
- Domain
- desktop-dev, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100