Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider making conhost internal interfaces derive form IUnknown, be COM-like #10388

Open
DHowett opened this issue Jun 9, 2021 · 0 comments
Labels
Area-CodeHealth Issues related to code cleanliness, linting, rules, warnings, errors, static analysis, etc. Issue-Task It's a feature request, but it doesn't really need a major design. Priority-3 A description (P3) Product-Conhost For issues in the Console codebase

Comments

@DHowett
Copy link
Member

DHowett commented Jun 9, 2021

This would solve a bunch of our internal ownership issues in a way that's slightly better than "sometimes it has a shared_ptr, but the class doesn't know".

Depending on which runtimeclass implementation we use, we could also get weak references. We could also just use non-owning pointers where there would be a reference cycle.

Consider:

  • IUiaData -- this would also help clear up ownership in Terminal between TermControl and TermControlFrameworkAutomationPeer
  • IRenderData
  • IControlAccessibilityInfo
  • IUiaEventDispatcher
  • ITerminalApi and ITerminalInput?
  • Many of the things in interactivity- IConsoleWindow, IHighDpiApi, IConsoleControl, IConsoleInputThread, IWindowMetrics, etc.
  • IRenderEngine IRenderTarget IRenderThread (let the renderer keep itself alive if necessary, fix some ownership issues with render engines and render base)
@DHowett DHowett added Product-Conhost For issues in the Console codebase Issue-Task It's a feature request, but it doesn't really need a major design. Area-CodeHealth Issues related to code cleanliness, linting, rules, warnings, errors, static analysis, etc. Priority-3 A description (P3) labels Jun 9, 2021
@DHowett DHowett added this to the Console Backlog milestone Jun 9, 2021
@ghost ghost added the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jun 9, 2021
@DHowett DHowett removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jun 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-CodeHealth Issues related to code cleanliness, linting, rules, warnings, errors, static analysis, etc. Issue-Task It's a feature request, but it doesn't really need a major design. Priority-3 A description (P3) Product-Conhost For issues in the Console codebase
Projects
None yet
Development

No branches or pull requests

2 participants