@@ -27,50 +27,31 @@ PacketWriter.prototype.finalize = function finalize(parser) {
2727 this . _offset = 0 ;
2828 }
2929
30+ var maxPacketLength = parser . _compressed
31+ ? MAX_PACKET_LENGTH - PACKET_HEADER_LENGTH
32+ : MAX_PACKET_LENGTH ;
33+
3034 var buffer = this . _buffer ;
3135 var length = this . _offset ;
32- var packets = Math . floor ( length / MAX_PACKET_LENGTH ) + 1 ;
33- var size = length + ( packets * PACKET_HEADER_LENGTH ) ;
34-
35- this . _buffer = Buffer . allocUnsafe ( size ) ;
36- this . _offset = 0 ;
36+ var packets = Math . floor ( length / maxPacketLength ) + 1 ;
3737
3838 for ( var packet = 0 ; packet < packets ; packet ++ ) {
3939 var isLast = ( packet + 1 === packets ) ;
4040 var packetLength = ( isLast )
41- ? length % MAX_PACKET_LENGTH
42- : MAX_PACKET_LENGTH ;
41+ ? length % maxPacketLength
42+ : maxPacketLength ;
4343
44- var packetNumber = parser . incrementPacketNumber ( ) ;
45- var packetOffset = this . _offset ;
46- var start = packet * MAX_PACKET_LENGTH ;
47- var end = start + packetLength ;
44+ var num = parser . incrementPacketNumber ( ) ;
45+ var start = packet * maxPacketLength ;
46+ var end = start + packetLength ;
47+ var buf = this . _toPacket ( num , buffer . slice ( start , end ) ) ;
4848
49- this . writeBuffer ( this . _toPacket ( packetNumber , buffer . slice ( start , end ) ) ) ;
50-
51- if ( ! parser . _compressed ) {
52- this . emit ( 'data' , this . _buffer . slice ( packetOffset , this . _offset ) ) ;
49+ if ( parser . _compressed ) {
50+ num = parser . incrementCompressedPacketNumber ( ) ;
51+ buf = this . _toCompressedPacket ( num , buf ) ;
5352 }
54- }
5553
56- if ( parser . _compressed ) {
57- buffer = this . _buffer ;
58- length = this . _offset ;
59- packets = Math . floor ( length / MAX_PACKET_LENGTH ) + 1 ;
60- size = length + ( packets * COMPRESSED_PACKET_HEADER_LENGTH ) ;
61-
62- for ( packet = 0 ; packet < packets ; packet ++ ) {
63- isLast = ( packet + 1 === packets ) ;
64- packetLength = ( isLast )
65- ? length % MAX_PACKET_LENGTH
66- : MAX_PACKET_LENGTH ;
67-
68- var num = parser . incrementCompressedPacketNumber ( ) ;
69- var start = packet * MAX_PACKET_LENGTH ;
70- var end = start + packetLength ;
71-
72- this . emit ( 'data' , this . _toCompressedPacket ( num , buffer . slice ( start , end ) ) ) ;
73- }
54+ this . emit ( 'data' , buf ) ;
7455 }
7556} ;
7657
0 commit comments