diff options
author | Jakob Stendahl <jakobste@uio.no> | 2021-10-21 19:42:16 +0200 |
---|---|---|
committer | Jakob Stendahl <jakobste@uio.no> | 2021-10-21 19:42:16 +0200 |
commit | 7366ae92038e94e74472cb21a02b24124b72dd93 (patch) | |
tree | 344ed9dee4dd0467dc38e7bac01e42d342ff5a04 | |
parent | 1cba96c40a79ae5bed0754f25f55f4b089289857 (diff) | |
download | Luxcena-Neo-7366ae92038e94e74472cb21a02b24124b72dd93.tar.gz Luxcena-Neo-7366ae92038e94e74472cb21a02b24124b72dd93.zip |
:bug: Fix potential memory leak
-rw-r--r-- | src/NeoRuntimeManager/index.js | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/NeoRuntimeManager/index.js b/src/NeoRuntimeManager/index.js index 7fc117a..a178bf1 100644 --- a/src/NeoRuntimeManager/index.js +++ b/src/NeoRuntimeManager/index.js @@ -30,7 +30,7 @@ let modeDebuggerActive = false; /** @type {string} Should be the modeId the debugger is attached to */ let modeDebuggerId = null; /** @type {object} Handler for proc:start when debugger is active */ -let modeDebuggerProcStartHandler; +let modeDebuggerProcStartHandler = null; /** @type {object} The last received matrix setup */ let matrix = null; @@ -254,11 +254,13 @@ function startDebugger(debuggerModeId) { if (modeDebuggerActive) { return {success: false, reason: "debugger already active"}; } logger.info(`Starting debugger for ${debuggerModeId}`); - modeDebuggerProcStartHandler = eventEmitter.on("proc:start", () => { - setTimeout(() => { - ipc.sendCommand(IPC.COMMAND.SET_SEND_STRIP_BUF, true); - }, 500); - }); + if (modeDebuggerProcStartHandler == null) { + modeDebuggerProcStartHandler = eventEmitter.on("proc:start", () => { + setTimeout(() => { + ipc.sendCommand(IPC.COMMAND.SET_SEND_STRIP_BUF, true); + }, 500); + }); + } modeDebuggerActive = true; modeDebuggerId = debuggerModeId; @@ -290,6 +292,7 @@ function stopDebugger() { logger.info(`Stopping debugger`); modeDebuggerActive = false; eventEmitter.removeAllListeners("proc:start", modeDebuggerProcStartHandler); + modeDebuggerProcStartHandler = null; ipc.sendCommand(IPC.COMMAND.SET_SEND_STRIP_BUF, false); return {success: true} } |