Repository: thrift Updated Branches: refs/heads/master 41ad4342c -> cada37008
THRIFT-3048: Repair node i64 compact interface Client: Node lib Patch: Will Demaine Github Pull Request: This closes #403 commit 11d0a661985cabe63c1dc1b47576bb2b2d6c2e54 Author: Willyham <[email protected]> Date: 2015-03-20T22:28:01Z Make TCompactProtocol always return an object for i64 Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/cada3700 Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/cada3700 Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/cada3700 Branch: refs/heads/master Commit: cada37008ce6e609fe6312596d3ced760e5cd60c Parents: 41ad434 Author: Randy Abernethy <[email protected]> Authored: Thu Mar 26 16:03:08 2015 -0700 Committer: Randy Abernethy <[email protected]> Committed: Thu Mar 26 16:03:08 2015 -0700 ---------------------------------------------------------------------- lib/nodejs/lib/thrift/compact_protocol.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/cada3700/lib/nodejs/lib/thrift/compact_protocol.js ---------------------------------------------------------------------- diff --git a/lib/nodejs/lib/thrift/compact_protocol.js b/lib/nodejs/lib/thrift/compact_protocol.js index 45d62f4..8aee808 100644 --- a/lib/nodejs/lib/thrift/compact_protocol.js +++ b/lib/nodejs/lib/thrift/compact_protocol.js @@ -780,7 +780,7 @@ TCompactProtocol.prototype.readString = function() { * if there is another byte to follow. This can read up to 5 bytes. */ TCompactProtocol.prototype.readVarint32 = function() { - return this.readVarint64(); + return this.readVarint64().toNumber(); }; /** @@ -811,8 +811,7 @@ TCompactProtocol.prototype.readVarint64 = function() { throw new Thrift.TProtocolException(Thrift.TProtocolExceptionType.INVALID_DATA, "Variable-length int over 10 bytes."); } } - var i64 = new Int64(hi, lo); - return i64.toNumber(); + return new Int64(hi, lo); }; /** @@ -826,9 +825,8 @@ TCompactProtocol.prototype.zigzagToI32 = function(n) { * Convert from zigzag long to long. */ TCompactProtocol.prototype.zigzagToI64 = function(n) { - var zz = new Int64(n); - var hi = zz.buffer.readUInt32BE(0, true); - var lo = zz.buffer.readUInt32BE(4, true); + var hi = n.buffer.readUInt32BE(0, true); + var lo = n.buffer.readUInt32BE(4, true); var neg = new Int64(hi & 0, lo & 1); neg._2scomp(); @@ -838,8 +836,7 @@ TCompactProtocol.prototype.zigzagToI64 = function(n) { var hi_lo = (hi << 31); hi = (hi >>> 1) ^ (hi_neg); lo = ((lo >>> 1) | hi_lo) ^ (lo_neg); - var i64 = new Int64(hi, lo); - return i64.toNumber(); + return new Int64(hi, lo); }; TCompactProtocol.prototype.skip = function(type) {
