From e68ab7d54a0bd5436e87f71ae7f663227ed35a68 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Fri, 15 Jan 2016 13:23:51 +0000 Subject: [PATCH] Tweak duplicateStrategy code to reduce diff --- lib/models/room.js | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/lib/models/room.js b/lib/models/room.js index 0aaa768bf..30b8e804d 100644 --- a/lib/models/room.js +++ b/lib/models/room.js @@ -541,33 +541,31 @@ Room.prototype.addEvents = function(events, duplicateStrategy) { // N.B. account_data is added directly by /sync to avoid // having to maintain an event.isAccountData() here else { - if (duplicateStrategy) { + var timeline = this._eventIdToTimeline[events[i].getId()]; + if (timeline && duplicateStrategy) { // is there a duplicate? var shouldIgnore = false; - var timeline = this._eventIdToTimeline[events[i].getId()]; - if (timeline) { - var tlEvents = timeline.getEvents(); - for (var j = 0; j < tlEvents.length; j++) { - if (tlEvents[j].getId() === events[i].getId()) { - if (duplicateStrategy === "replace") { - // still need to set the right metadata on this event - setEventMetadata( - events[i], - timeline.getState(false), - false - ); + var tlEvents = timeline.getEvents(); + for (var j = 0; j < tlEvents.length; j++) { + if (tlEvents[j].getId() === events[i].getId()) { + if (duplicateStrategy === "replace") { + // still need to set the right metadata on this event + setEventMetadata( + events[i], + timeline.getState(false), + false + ); - if (!tlEvents[j].encryptedType) { - tlEvents[j] = events[i]; - } - // skip the insert so we don't add this event twice. - // Don't break in case we replace multiple events. - shouldIgnore = true; - } - else if (duplicateStrategy === "ignore") { - shouldIgnore = true; - break; // stop searching, we're skipping the insert + if (!tlEvents[j].encryptedType) { + tlEvents[j] = events[i]; } + // skip the insert so we don't add this event twice. + // Don't break in case we replace multiple events. + shouldIgnore = true; + } + else if (duplicateStrategy === "ignore") { + shouldIgnore = true; + break; // stop searching, we're skipping the insert } } }