fix: Correct event listener cleanup in destroy method#18
Open
killerwolf wants to merge 1 commit intomainfrom
Open
fix: Correct event listener cleanup in destroy method#18killerwolf wants to merge 1 commit intomainfrom
killerwolf wants to merge 1 commit intomainfrom
Conversation
Addresses issue #9. This commit refactors the event listener management in VisualImageTool to prevent potential memory leaks and ensure proper cleanup when the tool instance is destroyed. Changes include: - Pre-binding event handlers in the constructor to maintain consistent function references. - Updating `_setupEventListeners`, `_createFocusMarker`, and `_createCropOverlay` (including crop handles) to use these pre-bound handlers for adding event listeners. - Modifying the `_handleCropHandleMouseDown` method to derive the handle type from `event.currentTarget.dataset.handle`. - Storing crop handle elements in `this.cropHandles` for easier iteration. - Comprehensively updating the `destroy` method to use the pre-bound handlers for removing all attached event listeners from window, document, image element, focus marker, crop overlay, and crop handles. - Nullifying bound handler references and clearing the `cropHandles` array in `destroy` for thorough cleanup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses issue #9.
This commit refactors the event listener management in VisualImageTool to prevent potential memory leaks and ensure proper cleanup when the tool instance is destroyed.
Changes include:
_setupEventListeners,_createFocusMarker, and_createCropOverlay(including crop handles) to use these pre-bound handlers for adding event listeners._handleCropHandleMouseDownmethod to derive the handle type fromevent.currentTarget.dataset.handle.this.cropHandlesfor easier iteration.destroymethod to use the pre-bound handlers for removing all attached event listeners from window, document, image element, focus marker, crop overlay, and crop handles.cropHandlesarray indestroyfor thorough cleanup.