From 7366ae92038e94e74472cb21a02b24124b72dd93 Mon Sep 17 00:00:00 2001 From: Jakob Stendahl Date: Thu, 21 Oct 2021 19:42:16 +0200 Subject: :bug: Fix potential memory leak --- src/NeoRuntimeManager/index.js | 15 +++++++++------ 1 file 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} } -- cgit v1.2.3