diff --git a/src/js/matrix.js b/src/js/matrix.js index e01d79d..e49fcb8 100644 --- a/src/js/matrix.js +++ b/src/js/matrix.js @@ -32,10 +32,12 @@ var µm = µMatrix; var magicId = 'axyorpwxtmnf'; +var uniqueIdGenerator = 1; /******************************************************************************/ var Matrix = function() { + this.id = uniqueIdGenerator++; this.reset(); }; @@ -556,14 +558,16 @@ Matrix.prototype.evaluateSwitchZ = function(switchName, srcHostname) { Matrix.prototype.extractAllSourceHostnames = (function() { var cachedResult = new Set(); + var matrixId = 0; var readTime = 0; return function() { - if ( readTime !== this.modifiedTime ) { + if ( matrixId !== this.id || readTime !== this.modifiedTime ) { cachedResult.clear(); for ( var rule of this.rules.keys() ) { cachedResult.add(rule.slice(0, rule.indexOf(' '))); } + matrixId = this.id; readTime = this.modifiedTime; } return cachedResult;