Replace separate attrib key, value calls with single pair call

pull/5288/head
Richard Hansen 2021-11-18 20:06:56 -05:00
parent 6cf2055199
commit 1f227200da
3 changed files with 13 additions and 36 deletions

View File

@ -364,9 +364,6 @@ PadDiff.prototype._createDeletionChangeset = function (cs, startAText, apool) {
};
};
const attribKeys = [];
const attribValues = [];
// iterate over all operators of this changeset
while (csIter.hasNext()) {
const csOp = csIter.next();
@ -381,28 +378,17 @@ PadDiff.prototype._createDeletionChangeset = function (cs, startAText, apool) {
if (csOp.attribs && textBank !== '*') {
const deletedAttrib = apool.putAttrib(['removed', true]);
let authorAttrib = apool.putAttrib(['author', '']);
attribKeys.length = 0;
attribValues.length = 0;
const attribs = [];
Changeset.eachAttribNumber(csOp.attribs, (n) => {
attribKeys.push(apool.getAttribKey(n));
attribValues.push(apool.getAttribValue(n));
if (apool.getAttribKey(n) === 'author') {
authorAttrib = n;
}
const attrib = apool.getAttrib(n);
attribs.push(attrib);
if (attrib[0] === 'author') authorAttrib = n;
});
const undoBackToAttribs = cachedStrFunc((attribs) => {
const undoBackToAttribs = cachedStrFunc((oldAttribsStr) => {
const backAttribs = [];
for (let i = 0; i < attribKeys.length; i++) {
const appliedKey = attribKeys[i];
const appliedValue = attribValues[i];
const oldValue = Changeset.attribsAttributeValue(attribs, appliedKey, apool);
if (appliedValue !== oldValue) {
backAttribs.push([appliedKey, oldValue]);
}
for (const [key, value] of attribs) {
const oldValue = Changeset.attribsAttributeValue(oldAttribsStr, key, apool);
if (oldValue !== value) backAttribs.push([key, oldValue])
}
return Changeset.makeAttribsString('=', backAttribs, apool);

View File

@ -166,9 +166,7 @@ AttributeManager.prototype = _(AttributeManager.prototype).extend({
const op = opIter.next();
if (!op.attribs) return [];
const attributes = [];
Changeset.eachAttribNumber(op.attribs, (n) => {
attributes.push([this.rep.apool.getAttribKey(n), this.rep.apool.getAttribValue(n)]);
});
Changeset.eachAttribNumber(op.attribs, (n) => attributes.push(this.rep.apool.getAttrib(n)));
return attributes;
},
@ -277,12 +275,8 @@ AttributeManager.prototype = _(AttributeManager.prototype).extend({
currentPointer += currentOperation.chars;
if (currentPointer <= column) continue;
const attributes = [];
Changeset.eachAttribNumber(currentOperation.attribs, (n) => {
attributes.push([
this.rep.apool.getAttribKey(n),
this.rep.apool.getAttribValue(n),
]);
});
Changeset.eachAttribNumber(
currentOperation.attribs, (n) => attributes.push(this.rep.apool.getAttrib(n)));
return attributes;
}
return [];

View File

@ -75,11 +75,8 @@ linestylefilter.getLineStyleFilter = (lineLength, aline, textAndClassFunc, apool
// For each attribute number
Changeset.eachAttribNumber(attribs, (n) => {
// Give us this attributes key
const key = apool.getAttribKey(n);
if (!key) return;
const value = apool.getAttribValue(n);
if (!value) return;
const [key, value] = apool.getAttrib(n);
if (!key || !value) return;
if (!isLineAttribMarker && AttributeManager.lineAttributes.indexOf(key) >= 0) {
isLineAttribMarker = true;
}