@@ -76,26 +76,6 @@ function parseStringNumbers (parser) {
7676 }
7777}
7878
79- /**
80- * Returns a string or buffer of the provided offset start and
81- * end ranges. Checks `optionReturnBuffers`.
82- *
83- * If returnBuffers is active, all return values are returned as buffers besides numbers and errors
84- *
85- * @param parser
86- * @param start
87- * @param end
88- * @returns {* }
89- */
90- function convertBufferRange ( parser , start , end ) {
91- parser . offset = end + 2
92- if ( parser . optionReturnBuffers === true ) {
93- return parser . buffer . slice ( start , end )
94- }
95-
96- return parser . buffer . toString ( 'utf8' , start , end )
97- }
98-
9979/**
10080 * Parse a '+' redis simple string response but forward the offsets
10181 * onto convertBufferRange to generate a string.
@@ -110,7 +90,11 @@ function parseSimpleString (parser) {
11090
11191 while ( offset < length ) {
11292 if ( buffer [ offset ++ ] === 13 ) { // \r\n
113- return convertBufferRange ( parser , start , offset - 1 )
93+ parser . offset = offset + 1
94+ if ( parser . optionReturnBuffers === true ) {
95+ return parser . buffer . slice ( start , offset - 1 )
96+ }
97+ return parser . buffer . toString ( 'utf8' , start , offset - 1 )
11498 }
11599 }
116100}
@@ -173,8 +157,12 @@ function parseBulkString (parser) {
173157 parser . bufferCache . push ( parser . buffer )
174158 return
175159 }
176-
177- return convertBufferRange ( parser , parser . offset , offsetEnd )
160+ const start = parser . offset
161+ parser . offset = offsetEnd + 2
162+ if ( parser . optionReturnBuffers === true ) {
163+ return parser . buffer . slice ( start , offsetEnd )
164+ }
165+ return parser . buffer . toString ( 'utf8' , start , offsetEnd )
178166}
179167
180168/**
0 commit comments