diff options
author | Wu Cheng-Han | 2015-09-26 10:25:00 +0800 |
---|---|---|
committer | Wu Cheng-Han | 2015-09-26 10:25:00 +0800 |
commit | 332413bcaa7e1c810f236239474d997eb5d1aa43 (patch) | |
tree | 4c80646a8cedc45f28a740cfd076f72371227e3a | |
parent | 3683a6dd3421a7392d728d6dd33ea452380b2154 (diff) |
Fixed if using splice in loop should always decrement index or might out of array range
Diffstat (limited to '')
-rw-r--r-- | lib/realtime.js | 12 | ||||
-rw-r--r-- | public/js/history.js | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/lib/realtime.js b/lib/realtime.js index 09da1c8c..23464099 100644 --- a/lib/realtime.js +++ b/lib/realtime.js @@ -264,8 +264,10 @@ function finishConnection(socket, note, user) { //clear finished socket in queue for (var i = 0; i < connectionSocketQueue.length; i++) { - if (!connectionSocketQueue[i] || connectionSocketQueue[i].id == socket.id) + if (!connectionSocketQueue[i] || connectionSocketQueue[i].id == socket.id) { connectionSocketQueue.splice(i, 1); + i--; + } } //seek for next socket isConnectionBusy = false; @@ -302,8 +304,10 @@ function startConnection(socket) { socket.disconnect(true); //clear err socket in queue for (var i = 0; i < connectionSocketQueue.length; i++) { - if (!connectionSocketQueue[i] || connectionSocketQueue[i].id == socket.id) + if (!connectionSocketQueue[i] || connectionSocketQueue[i].id == socket.id) { connectionSocketQueue.splice(i, 1); + i--; + } } isConnectionBusy = false; return logger.error(err); @@ -390,8 +394,10 @@ function disconnect(socket) { //clear finished socket in queue for (var i = 0; i < disconnectSocketQueue.length; i++) { - if (!disconnectSocketQueue[i] || disconnectSocketQueue[i].id == socket.id) + if (!disconnectSocketQueue[i] || disconnectSocketQueue[i].id == socket.id) { disconnectSocketQueue.splice(i, 1); + i--; + } } //seek for next socket isDisconnectBusy = false; diff --git a/public/js/history.js b/public/js/history.js index 10ab932f..82c145da 100644 --- a/public/js/history.js +++ b/public/js/history.js @@ -123,8 +123,10 @@ function addHistory(id, text, time, tags, notehistory) { function removeHistory(id, notehistory) { for (var i = 0; i < notehistory.length; i++) { - if (notehistory[i].id == id) + if (notehistory[i].id == id) { notehistory.splice(i, 1); + i--; + } } return notehistory; } |