Skip to content

fix: Crash on rapid taps / tour reset - reverse() called after dispose - #663

Open
Fellmonkey wants to merge 1 commit into
SimformSolutionsPvtLtd:fix/issue_659_null_check_error_on_register_state_disposedfrom
Fellmonkey:fix/reverse-after-dispose
Open

Fellmonkey wants to merge 1 commit into
SimformSolutionsPvtLtd:fix/issue_659_null_check_error_on_register_state_disposedfrom
Fellmonkey:fix/reverse-after-dispose

Conversation

@Fellmonkey

Copy link
Copy Markdown

Description

reverseAnimationCallback was assigned the raw method tear-off
_scaleAnimationController.reverse and never cleared in dispose(). When a
showcase sequence is reset or advanced quickly (rapid taps on consecutive
tooltips), a pending _onComplete() invoked reverse() on a controller that
had already been disposed, throwing:

AnimationController.reverse() called after AnimationController.dispose()

This PR wraps the callback in a closure that no-ops once the tooltip is
disposed, and nulls it in dispose().

Checklist

  • The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
  • 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

Closes #661

@apurva010
apurva010 force-pushed the fix/reverse-after-dispose branch 2 times, most recently from 779aca9 to aa68d6d Compare September 10, 2026 10:49
@apurva010
apurva010 changed the base branch from master to fix/issue_659_null_check_error_on_register_state_disposed September 10, 2026 10:51
@apurva010
apurva010 force-pushed the fix/reverse-after-dispose branch 2 times, most recently from 98da790 to 53bc876 Compare September 10, 2026 10:59
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.

Crash on rapid taps: "AnimationController.reverse() called after AnimationController.dispose()"

1 participant