@@ -151,22 +151,13 @@ function parserOnMessageComplete() {
151
151
const parsers = new FreeList ( 'parsers' , 1000 , function parsersCb ( ) {
152
152
const parser = new HTTPParser ( HTTPParser . REQUEST ) ;
153
153
154
- parser . _headers = [ ] ;
155
- parser . _url = '' ;
156
- parser . _consumed = false ;
157
-
158
- parser . socket = null ;
159
- parser . incoming = null ;
160
- parser . outgoing = null ;
161
-
162
- parser . maxHeaderPairs = MAX_HEADER_PAIRS ;
154
+ cleanParser ( parser ) ;
163
155
164
156
parser . onIncoming = null ;
165
157
parser [ kOnHeaders ] = parserOnHeaders ;
166
158
parser [ kOnHeadersComplete ] = parserOnHeadersComplete ;
167
159
parser [ kOnBody ] = parserOnBody ;
168
160
parser [ kOnMessageComplete ] = parserOnMessageComplete ;
169
- parser [ kOnExecute ] = null ;
170
161
171
162
return parser ;
172
163
} ) ;
@@ -182,17 +173,9 @@ function closeParserInstance(parser) { parser.close(); }
182
173
// should be all that is needed.
183
174
function freeParser ( parser , req , socket ) {
184
175
if ( parser ) {
185
- parser . _headers = [ ] ;
186
- parser . _url = '' ;
187
- parser . maxHeaderPairs = MAX_HEADER_PAIRS ;
188
- parser . onIncoming = null ;
189
176
if ( parser . _consumed )
190
177
parser . unconsume ( ) ;
191
- parser . _consumed = false ;
192
- parser . socket = null ;
193
- parser . incoming = null ;
194
- parser . outgoing = null ;
195
- parser [ kOnExecute ] = null ;
178
+ cleanParser ( parser ) ;
196
179
if ( parsers . free ( parser ) === false ) {
197
180
// Make sure the parser's stack has unwound before deleting the
198
181
// corresponding C++ object through .close().
@@ -238,6 +221,17 @@ function checkInvalidHeaderChar(val) {
238
221
return headerCharRegex . test ( val ) ;
239
222
}
240
223
224
+ function cleanParser ( parser ) {
225
+ parser . _headers = [ ] ;
226
+ parser . _url = '' ;
227
+ parser . socket = null ;
228
+ parser . incoming = null ;
229
+ parser . outgoing = null ;
230
+ parser . maxHeaderPairs = MAX_HEADER_PAIRS ;
231
+ parser [ kOnExecute ] = null ;
232
+ parser . _consumed = false ;
233
+ }
234
+
241
235
module . exports = {
242
236
_checkInvalidHeaderChar : checkInvalidHeaderChar ,
243
237
_checkIsHttpToken : checkIsHttpToken ,
0 commit comments