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

fix: Un-register component keys down the component tree #2792

Merged
merged 3 commits into from
Oct 4, 2023

Conversation

ufrshubham
Copy link
Collaborator

@ufrshubham ufrshubham commented Oct 3, 2023

Description

ComponentKey for children components were not getting unregistered when the sub-tree was removed from the game. As a result:

  • same key couldn't be reused
  • components with such keys couldn't be readded once removed
  • component with such keys were not being garbage collected (didn't actually verify this one though)

Checklist

  • I have followed the Contributor Guide when preparing my PR.
  • I have updated/added tests for ALL new/updated/fixed functionality.
  • [-] I have updated/added relevant documentation in docs and added dartdoc comments with ///.
  • [-] I have updated/added relevant examples in examples or docs.

Breaking Change?

  • Yes, this PR is a breaking change.
  • No, this PR is not a breaking change.

Related Issues

Copy link
Member

@spydon spydon left a comment

Choose a reason for hiding this comment

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

Good find!

packages/flame/lib/src/components/core/component.dart Outdated Show resolved Hide resolved
Copy link
Member

@luanpotter luanpotter left a comment

Choose a reason for hiding this comment

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

LGTM

@spydon spydon merged commit 0f679b3 into main Oct 4, 2023
8 checks passed
@spydon spydon deleted the devkage/nuke-component-keys branch October 4, 2023 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants