Skip to content

Conversation

@bparrishMines
Copy link
Contributor

@bparrishMines bparrishMines commented Dec 3, 2025

In the event of a hot restart, the native InstanceManagers are cleared. There is then a chance for a class to make a callback when it is no in the instance manager which leads to a null exception in the codec.

Part of fixing flutter/flutter#176451
Pigeon side fix for #10529

Pre-Review Checklist

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

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.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 2 3

@bparrishMines bparrishMines changed the title Pigeon instances [pigeon] Fixes crash that occurs when a object that is removed from the instance manager calls to Dart Dec 3, 2025
@bparrishMines bparrishMines marked this pull request as ready for review December 3, 2025 15:24
@bparrishMines bparrishMines changed the title [pigeon] Fixes crash that occurs when a object that is removed from the instance manager calls to Dart [pigeon] Fixes crash that occurs when an object that is removed from the instance manager calls to Dart Dec 3, 2025
class ProxyApiDelegate: ProxyApiTestsPigeonProxyApiDelegate {
func pigeonApiProxyApiTestClass(_ registrar: ProxyApiTestsPigeonProxyApiRegistrar)
-> PigeonApiProxyApiTestClass
class ProxyApiTestClassDelegate: PigeonApiDelegateProxyApiTestClass {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is just copied and pasted outside of the ProxyApiDelegate.pigeonApiProxyApiTestClass so that the test has access to it.

.failure(
${_getErrorClassName(generatorOptions)}(
code: "missing-instance-error",
message: "Calling instance is not in the instance manager.", details: "")))
Copy link
Contributor

Choose a reason for hiding this comment

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

Calling instance is not...

Should it be calling instance [instance name]?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

[instanceName] would always be pigeonInstanceArg and wouldn't be that helpful. But the error message probably would be more helpful if I added the class and method name here, so I'll add that.

@bparrishMines bparrishMines added the autosubmit Merge PR when tree becomes green via auto submit App label Dec 4, 2025
@auto-submit auto-submit bot merged commit d39e481 into flutter:main Dec 4, 2025
80 checks passed
@bparrishMines bparrishMines deleted the pigeon_instances branch December 4, 2025 03:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App p: pigeon platform-android platform-ios platform-macos

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants