Skip to content

[win32] Remove allocation from GetWindowPositionCallback - #192990

Merged
mattkae merged 2 commits into
flutter:masterfrom
knopp:remove_allocation_from_get_position
Sep 18, 2026
Merged

mattkae merged 2 commits into
flutter:masterfrom
knopp:remove_allocation_from_get_position

Conversation

@knopp

@knopp knopp commented Sep 18, 2026

Copy link
Copy Markdown
Member

Right now the output rectangle in GetWindowPositionCallback is allocated on Dart side through CoTaskMemAlloc and deallocated in native through free, which is wrong. This PR removes the allocation completely making the caller (native side) provide target rect pointer where the Dart side fills values.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

@knopp
knopp requested a review from a team as a code owner September 18, 2026 13:34
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Sep 18, 2026
@flutter-dashboard

Copy link
Copy Markdown

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@github-actions github-actions Bot added framework flutter/packages/flutter repository. See also f: labels. engine flutter/engine related. See also e: labels. platform-windows Building on or for Windows specifically a: desktop Running on desktop team-windows Owned by the Windows platform team labels Sep 18, 2026
@knopp
knopp requested a review from mattkae September 18, 2026 13:34

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the window position callback mechanism in the Windows shell to use an output parameter instead of returning a pointer, improving memory safety and consistency. The changes involve updating the GetWindowPositionCallback signature in C++ and Dart, adjusting the corresponding implementations in HostWindowPopup, HostWindowTooltip, and their respective controllers, and updating all associated unit tests. The review feedback highlights the importance of zero-initializing the rect structure to prevent undefined behavior when using stack-allocated memory.

@mattkae mattkae left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes please :)

@mattkae mattkae added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 18, 2026
@mattkae
mattkae enabled auto-merge September 18, 2026 17:24
@mattkae
mattkae disabled auto-merge September 18, 2026 17:24
@mattkae
mattkae enabled auto-merge September 18, 2026 17:25
@mattkae mattkae mentioned this pull request Sep 18, 2026
11 tasks done
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Sep 18, 2026
@auto-submit

auto-submit Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/192990, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label.

@knopp
knopp force-pushed the remove_allocation_from_get_position branch from 0d95592 to 96e5a47 Compare September 18, 2026 17:55
@mattkae mattkae added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 18, 2026
@flutter-dashboard

Copy link
Copy Markdown

Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change).

If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review.

For more guidance, visit Writing a golden file test for package:flutter.

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

Changes reported for pull request #192990 at sha 96e5a47

@flutter-dashboard flutter-dashboard Bot added the will affect goldens Changes to golden files label Sep 18, 2026
@mattkae
mattkae added this pull request to the merge queue Sep 18, 2026
Merged via the queue into flutter:master with commit e92c084 Sep 18, 2026
27 of 28 checks passed
@mattkae
mattkae deleted the remove_allocation_from_get_position branch September 18, 2026 21:39
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Sep 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: desktop Running on desktop CICD Run CI/CD engine flutter/engine related. See also e: labels. framework flutter/packages/flutter repository. See also f: labels. platform-windows Building on or for Windows specifically team-windows Owned by the Windows platform team will affect goldens Changes to golden files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants