faster negative script nums.
This commit is contained in:
parent
ab68e23238
commit
c6ccb0fccf
@ -1913,8 +1913,9 @@ Script.num = function num(value, flags, size) {
|
|||||||
// 0x80, remove it from the result's msb and return
|
// 0x80, remove it from the result's msb and return
|
||||||
// a negative.
|
// a negative.
|
||||||
if (value[value.length - 1] & 0x80) {
|
if (value[value.length - 1] & 0x80) {
|
||||||
n = new bn(0x80).ushln(8 * (value.length - 1)).notn(64);
|
// n = new bn(0x80).ushln(8 * (value.length - 1)).notn(64);
|
||||||
return result.uand(n).neg();
|
// return result.uand(n).neg();
|
||||||
|
result.setn((value.length * 8) - 1, 0).ineg();
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -1962,8 +1963,20 @@ Script.array = function(value) {
|
|||||||
// interpreted as a negative when
|
// interpreted as a negative when
|
||||||
// converting to an integral.
|
// converting to an integral.
|
||||||
|
|
||||||
|
// neg = value.cmpn(0) < 0;
|
||||||
|
// if (value.testn((value.byteLength() * 8) - 1)) {
|
||||||
|
// result = value.toArray('le');
|
||||||
|
// result.push(neg ? 0x80 : 0);
|
||||||
|
// return new Buffer(result);
|
||||||
|
// }
|
||||||
|
// result = value.toBuffer('le');
|
||||||
|
// if (neg)
|
||||||
|
// result[result.length - 1] |= 0x80;
|
||||||
|
// return result;
|
||||||
|
|
||||||
neg = value.cmpn(0) < 0;
|
neg = value.cmpn(0) < 0;
|
||||||
result = value.toArray('le');
|
result = value.toArray('le');
|
||||||
|
|
||||||
if (result[result.length - 1] & 0x80)
|
if (result[result.length - 1] & 0x80)
|
||||||
result.push(neg ? 0x80 : 0);
|
result.push(neg ? 0x80 : 0);
|
||||||
else if (neg)
|
else if (neg)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user