22
33var util = require ( 'util' ) ;
44
5- function Packet ( type , size ) {
6- this . type = type ;
7- this . size = + size ;
8- }
9-
105function ReplyParser ( return_buffers ) {
116 this . name = exports . name ;
127 this . return_buffers = return_buffers ;
@@ -23,7 +18,10 @@ function IncompleteReadBuffer(message) {
2318util . inherits ( IncompleteReadBuffer , Error ) ;
2419
2520ReplyParser . prototype . _parseResult = function ( type ) {
26- var start , end , offset , packetHeader ;
21+ var start = 0 ,
22+ end = 0 ,
23+ offset = 0 ,
24+ packetHeader = 0 ;
2725
2826 if ( type === 43 || type === 45 ) { // + or -
2927 // up to the delimiter
@@ -62,14 +60,14 @@ ReplyParser.prototype._parseResult = function (type) {
6260 // buffer in memory
6361 offset = this . _offset - 1 ;
6462
65- packetHeader = new Packet ( type , this . parseHeader ( ) ) ;
63+ packetHeader = this . parseHeader ( ) ;
6664
6765 // packets with a size of -1 are considered null
68- if ( packetHeader . size === - 1 ) {
66+ if ( packetHeader === - 1 ) {
6967 return null ;
7068 }
7169
72- end = this . _offset + packetHeader . size ;
70+ end = this . _offset + packetHeader ;
7371 start = this . _offset ;
7472
7573 if ( end > this . _buffer . length ) {
@@ -83,15 +81,15 @@ ReplyParser.prototype._parseResult = function (type) {
8381 return this . _buffer . slice ( start , end ) ;
8482 }
8583 return this . _buffer . toString ( this . _encoding , start , end ) ;
86- } else { // *
84+ } else if ( type === 42 ) { // *
8785 offset = this . _offset ;
88- packetHeader = new Packet ( type , this . parseHeader ( ) ) ;
86+ packetHeader = this . parseHeader ( ) ;
8987
90- if ( packetHeader . size < 0 ) {
88+ if ( packetHeader < 0 ) {
9189 return null ;
9290 }
9391
94- if ( packetHeader . size > this . _bytesRemaining ( ) ) {
92+ if ( packetHeader > this . _bytesRemaining ( ) ) {
9593 this . _offset = offset - 1 ;
9694 throw new IncompleteReadBuffer ( 'Wait for more data.' ) ;
9795 }
@@ -101,7 +99,7 @@ ReplyParser.prototype._parseResult = function (type) {
10199
102100 offset = this . _offset - 1 ;
103101
104- for ( i = 0 ; i < packetHeader . size ; i ++ ) {
102+ for ( i = 0 ; i < packetHeader ; i ++ ) {
105103 ntype = this . _buffer [ this . _offset ++ ] ;
106104
107105 if ( this . _offset > this . _buffer . length ) {
@@ -184,7 +182,7 @@ ReplyParser.prototype.append = function (newBuffer) {
184182
185183ReplyParser . prototype . parseHeader = function ( ) {
186184 var end = this . _packetEndOffset ( ) ,
187- value = this . _buffer . toString ( 'ascii' , this . _offset , end - 1 ) ;
185+ value = this . _buffer . toString ( 'ascii' , this . _offset , end - 1 ) | 0 ;
188186
189187 this . _offset = end + 1 ;
190188
0 commit comments