encoding: fix varint bns.
This commit is contained in:
parent
dd0ebe5320
commit
1e18ca772a
@ -574,7 +574,7 @@ encoding.sizeVarint = function sizeVarint(num) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
encoding.readVarintBN = function readVarintBN(data, off) {
|
encoding.readVarintBN = function readVarintBN(data, off) {
|
||||||
var value, size;
|
var result, value, size;
|
||||||
|
|
||||||
assert(off < data.length);
|
assert(off < data.length);
|
||||||
|
|
||||||
@ -586,7 +586,9 @@ encoding.readVarintBN = function readVarintBN(data, off) {
|
|||||||
assert(value.bitLength() > 32);
|
assert(value.bitLength() > 32);
|
||||||
return new Varint(size, value);
|
return new Varint(size, value);
|
||||||
default:
|
default:
|
||||||
return encoding.readVarint(data, off);
|
result = encoding.readVarint(data, off);
|
||||||
|
result.value = new BN(result.value);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -600,9 +602,9 @@ encoding.readVarintBN = function readVarintBN(data, off) {
|
|||||||
|
|
||||||
encoding.writeVarintBN = function writeVarintBN(dst, num, off) {
|
encoding.writeVarintBN = function writeVarintBN(dst, num, off) {
|
||||||
if (num.bitLength() > 32) {
|
if (num.bitLength() > 32) {
|
||||||
dst[off] = 0xff;
|
dst[off++] = 0xff;
|
||||||
encoding.writeU64BN(dst, num, off + 1);
|
off = encoding.writeU64BN(dst, num, off);
|
||||||
return off + 9;
|
return off;
|
||||||
}
|
}
|
||||||
|
|
||||||
return encoding.writeVarint(dst, num.toNumber(), off);
|
return encoding.writeVarint(dst, num.toNumber(), off);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user