From 02d701e60271d2a902858409e473e253f39647cb Mon Sep 17 00:00:00 2001 From: Ben Sgroi Date: Mon, 22 Oct 2018 16:05:41 -0400 Subject: [PATCH 1/3] Removed event listeners, to prevent memory leak Calling `addEventListener` on the row element without ever disconnecting via `removeEventListener` causes a memory leak. --- js/draggable-rows.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/js/draggable-rows.js b/js/draggable-rows.js index f58cf8b..46cf63b 100644 --- a/js/draggable-rows.js +++ b/js/draggable-rows.js @@ -266,6 +266,17 @@ row.addEventListener('mousedown', listeners.onMouseDownEventListener, false); row.addEventListener('mouseup', listeners.onMouseUpEventListener, false); } + + $scope.$on('$destroy', function() { + row.removeEventListener('dragover', listeners.onDragOverEventListener, false); + row.removeEventListener('dragstart', listeners.onDragStartEventListener, false); + row.removeEventListener('dragleave', listeners.onDragLeaveEventListener, false); + row.removeEventListener('dragenter', listeners.onDragEnterEventListener, false); + row.removeEventListener('dragend', listeners.onDragEndEventListener, false); + row.removeEventListener('drop', listeners.onDropEventListener); + row.removeEventListener('mousedown', listeners.onMouseDownEventListener, false); + row.removeEventListener('mouseup', listeners.onMouseUpEventListener, false); + }); }; }]) From 8f0235e24ce2634e8dc21e83bed2e0d313e26d58 Mon Sep 17 00:00:00 2001 From: Ben Sgroi Date: Mon, 22 Oct 2018 16:07:17 -0400 Subject: [PATCH 2/3] Fixed spacing --- js/draggable-rows.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/draggable-rows.js b/js/draggable-rows.js index 46cf63b..2e86b79 100644 --- a/js/draggable-rows.js +++ b/js/draggable-rows.js @@ -268,13 +268,13 @@ } $scope.$on('$destroy', function() { - row.removeEventListener('dragover', listeners.onDragOverEventListener, false); + row.removeEventListener('dragover', listeners.onDragOverEventListener, false); row.removeEventListener('dragstart', listeners.onDragStartEventListener, false); row.removeEventListener('dragleave', listeners.onDragLeaveEventListener, false); row.removeEventListener('dragenter', listeners.onDragEnterEventListener, false); row.removeEventListener('dragend', listeners.onDragEndEventListener, false); row.removeEventListener('drop', listeners.onDropEventListener); - row.removeEventListener('mousedown', listeners.onMouseDownEventListener, false); + row.removeEventListener('mousedown', listeners.onMouseDownEventListener, false); row.removeEventListener('mouseup', listeners.onMouseUpEventListener, false); }); }; From 1f7942e17d74595fd2eb5b06de9b2aa8dd4d4c11 Mon Sep 17 00:00:00 2001 From: Ben Sgroi Date: Mon, 22 Oct 2018 16:08:09 -0400 Subject: [PATCH 3/3] Replaced tabs with spaces --- js/draggable-rows.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/draggable-rows.js b/js/draggable-rows.js index 2e86b79..085626a 100644 --- a/js/draggable-rows.js +++ b/js/draggable-rows.js @@ -267,7 +267,7 @@ row.addEventListener('mouseup', listeners.onMouseUpEventListener, false); } - $scope.$on('$destroy', function() { + $scope.$on('$destroy', function() { row.removeEventListener('dragover', listeners.onDragOverEventListener, false); row.removeEventListener('dragstart', listeners.onDragStartEventListener, false); row.removeEventListener('dragleave', listeners.onDragLeaveEventListener, false); @@ -276,7 +276,7 @@ row.removeEventListener('drop', listeners.onDropEventListener); row.removeEventListener('mousedown', listeners.onMouseDownEventListener, false); row.removeEventListener('mouseup', listeners.onMouseUpEventListener, false); - }); + }); }; }])