Vector35 / Vector35/binaryninja-api

Sidebar pointer lifetime (UI-Documentation)

Open
#4,949 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Effort: Medium Impact: Medium
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 for SidebarWidgetType::createWidget and when is it deleted?
  • Who is responsible for deleting the SidebarWidgetType* registered with Sidebar::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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.