From c85391862b160d95884ba69679c74963a8ccf3f2 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Mon, 12 Apr 2021 23:22:36 -0400 Subject: [PATCH] PadMessageHandler: Avoid unnecessary property lookups --- src/node/handler/PadMessageHandler.js | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index 89896fa71..d8042b508 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -732,12 +732,11 @@ exports.updatePadClients = async (pad) => { const revChangeset = revision.changeset; const currentTime = revision.meta.timestamp; - // next if session has not been deleted - if (sessioninfos[sid] == null) { - continue; - } + // Re-check sessioninfos in case the client disconnected during the above await. + const sessioninfo = sessioninfos[sid]; + if (sessioninfo == null) continue; - if (author === sessioninfos[sid].author) { + if (author === sessioninfo.author) { socket.json.send({type: 'COLLABROOM', data: {type: 'ACCEPT_COMMIT', newRev: r}}); } else { const forWire = Changeset.prepareForWire(revChangeset, pad.pool); @@ -748,15 +747,12 @@ exports.updatePadClients = async (pad) => { apool: forWire.pool, author, currentTime, - timeDelta: currentTime - sessioninfos[sid].time}}; + timeDelta: currentTime - sessioninfo.time}}; socket.json.send(wireMsg); } - - if (sessioninfos[sid]) { - sessioninfos[sid].time = currentTime; - sessioninfos[sid].rev = r; - } + sessioninfo.time = currentTime; + sessioninfo.rev = r; } } };