fix: unsigned indexes

This commit is contained in:
cha0s 2019-04-08 09:20:29 -04:00
parent f7d74df32c
commit 3e73bc9950

View File

@ -59,20 +59,20 @@ export class Packer {
const view = new DataView(packedSteps);
let caret = 0;
// Number of steps.
view.setInt32(caret, preparedSteps.length);
view.setUint32(caret, preparedSteps.length);
caret += 4;
preparedSteps.forEach(({op, path, value}) => {
// Op.
view.setInt8(caret, op);
view.setUint8(caret, op);
caret += 1;
// Path.
view.setInt32(caret, path);
view.setUint32(caret, path);
caret += 4;
if ('remove' === op) {
return;
}
// Value.
view.setInt8(caret, value.type);
view.setUint8(caret, value.type);
caret += 1;
switch (value.type) {
case PACKER_STEP_VALUE_BYTE:
@ -229,13 +229,13 @@ export class Unpacker {
}
const view = new DataView(packedSteps);
let caret = 0;
const numberOfSteps = view.getInt32(caret);
const numberOfSteps = view.getUint32(caret);
caret += 4;
const steps = new Array(numberOfSteps);
for (let i = 0; i < numberOfSteps; ++i) {
const packedOp = view.getInt8(caret);
const packedOp = view.getUint8(caret);
caret += 1;
const packedPath = view.getInt32(caret);
const packedPath = view.getUint32(caret);
caret += 4;
steps[i] = {
op: this.constructor.unpackOp(packedOp),
@ -244,7 +244,7 @@ export class Unpacker {
if (PACKER_STEP_OP_REMOVE === packedOp) {
continue;
}
const valueType = view.getInt8(caret);
const valueType = view.getUint8(caret);
caret += 1;
let value;
switch (valueType) {