@@ -27,50 +27,31 @@ PacketWriter.prototype.finalize = function finalize(parser) {
27
27
this . _offset = 0 ;
28
28
}
29
29
30
+ var maxPacketLength = parser . _compressed
31
+ ? MAX_PACKET_LENGTH - PACKET_HEADER_LENGTH
32
+ : MAX_PACKET_LENGTH ;
33
+
30
34
var buffer = this . _buffer ;
31
35
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 ;
37
37
38
38
for ( var packet = 0 ; packet < packets ; packet ++ ) {
39
39
var isLast = ( packet + 1 === packets ) ;
40
40
var packetLength = ( isLast )
41
- ? length % MAX_PACKET_LENGTH
42
- : MAX_PACKET_LENGTH ;
41
+ ? length % maxPacketLength
42
+ : maxPacketLength ;
43
43
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 ) ) ;
48
48
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 ) ;
53
52
}
54
- }
55
53
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 ) ;
74
55
}
75
56
} ;
76
57
0 commit comments