Fix bug updating tags not triggering preset rerun
This commit is contained in:
1 parent
a436f17888
commit
93452d445f
2 files changed
+18
No files matched your search
@@ -36,6 +36,7 @@ class VersionedMap {
|
||||
this._sizeDiff = [0];
|
||||
this._revision = 0;
|
||||
this.map = new Map();
|
||||
this.dirty = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -100,6 +101,7 @@ class VersionedMap {
|
||||
|
||||
var v = this.map.get(key);
|
||||
if (!v) {
|
||||
this.dirty |= 1 << rev;
|
||||
for (let i = 0; i < rev; ++ i)
|
||||
this._sizeDiff[i] -= 1;
|
||||
|
||||
@@ -118,6 +120,7 @@ class VersionedMap {
|
||||
throw new Error('Cannot modify old revisions');
|
||||
}
|
||||
|
||||
this.dirty |= 1 << rev;
|
||||
if (old === NONEXISTENT)
|
||||
++ this._sizeDiff[rev];
|
||||
|
||||
@@ -140,6 +143,7 @@ class VersionedMap {
|
||||
if (old === NONEXISTENT)
|
||||
return false;
|
||||
|
||||
this.dirty |= 1 << rev;
|
||||
-- this._sizeDiff[rev];
|
||||
v[rev] = NONEXISTENT;
|
||||
|
||||
@@ -177,6 +181,7 @@ class VersionedMap {
|
||||
for (let i = this._sizeDiff.length; i <= r; ++ i)
|
||||
this._sizeDiff[i] = this._sizeDiff[i - 1];
|
||||
|
||||
this.dirty |= 1 << r;
|
||||
rev[r] = revisions[k];
|
||||
}
|
||||
}
|
||||
@@ -184,6 +189,8 @@ class VersionedMap {
|
||||
for (let i = 0; i < minKey; ++ i)
|
||||
-- this._sizeDiff[i];
|
||||
|
||||
this.dirty |= del;
|
||||
|
||||
for (let i = 0; del > 0; del >>= 1, ++ i)
|
||||
if (del & 1)
|
||||
rev[i] = NONEXISTENT;
|
||||
@@ -233,6 +240,10 @@ class VersionedMap {
|
||||
this._sizeDiff[revision] = this._sizeDiff[this._sizeDiff.length - 1];
|
||||
this._sizeDiff.splice(revision + 1, this._sizeDiff.length);
|
||||
|
||||
let d = this.dirty >> revision;
|
||||
this.dirty = this.dirty ^ (d << revision);
|
||||
this.dirty |= (+!!d) << revision;
|
||||
|
||||
for (let pair of this.map) {
|
||||
let k = pair[0];
|
||||
let v = pair[1];
|
||||
|
||||
Reference in new issue
Block a user