@@ -12,7 +12,6 @@ var Buffer = require('safe-buffer').Buffer;
1212var BufferList = require ( './BufferList' ) ;
1313var EventEmitter = require ( 'events' ) . EventEmitter ;
1414var Util = require ( 'util' ) ;
15- var Zlib = require ( 'zlib' ) ;
1615
1716module . exports = PacketWriter ;
1817function PacketWriter ( ) {
@@ -44,14 +43,10 @@ PacketWriter.prototype.finalize = function finalize(parser) {
4443
4544 var packetNumber = parser . incrementPacketNumber ( ) ;
4645 var packetOffset = this . _offset ;
46+ var start = packet * MAX_PACKET_LENGTH ;
47+ var end = start + packetLength ;
4748
48- this . writeUnsignedNumber ( 3 , packetLength ) ;
49- this . writeUnsignedNumber ( 1 , packetNumber ) ;
50-
51- var start = packet * MAX_PACKET_LENGTH ;
52- var end = start + packetLength ;
53-
54- this . writeBuffer ( buffer . slice ( start , end ) ) ;
49+ this . writeBuffer ( this . _toPacket ( packetNumber , buffer . slice ( start , end ) ) ) ;
5550
5651 if ( ! parser . _compressed ) {
5752 this . emit ( 'data' , this . _buffer . slice ( packetOffset , this . _offset ) ) ;
@@ -70,21 +65,11 @@ PacketWriter.prototype.finalize = function finalize(parser) {
7065 ? length % MAX_PACKET_LENGTH
7166 : MAX_PACKET_LENGTH ;
7267
73- packetNumber = parser . incrementCompressedPacketNumber ( ) ;
74-
75- this . _buffer = Buffer . allocUnsafe ( packetLength + COMPRESSED_PACKET_HEADER_LENGTH ) ;
76- this . _offset = 0 ;
77-
78- this . writeUnsignedNumber ( 3 , packetLength ) ;
79- this . writeUnsignedNumber ( 1 , packetNumber ) ;
80- this . writeUnsignedNumber ( 3 , 0 ) ;
81-
68+ var num = parser . incrementCompressedPacketNumber ( ) ;
8269 var start = packet * MAX_PACKET_LENGTH ;
8370 var end = start + packetLength ;
8471
85- this . writeBuffer ( buffer . slice ( start , end ) ) ;
86-
87- this . emit ( 'data' , this . _buffer ) ;
72+ this . emit ( 'data' , this . _toCompressedPacket ( num , buffer . slice ( start , end ) ) ) ;
8873 }
8974 }
9075} ;
@@ -272,3 +257,42 @@ PacketWriter.prototype._allocate = function _allocate(bytes) {
272257 this . _buffer = Buffer . alloc ( newSize ) ;
273258 oldBuffer . copy ( this . _buffer ) ;
274259} ;
260+
261+ PacketWriter . prototype . _toCompressedPacket = function _toCompressedPacket ( num , buf ) {
262+ var origBuffer = this . _buffer ;
263+ var origOffset = this . _offset ;
264+
265+ this . _buffer = Buffer . allocUnsafe ( buf . length + COMPRESSED_PACKET_HEADER_LENGTH ) ;
266+ this . _offset = 0 ;
267+
268+ this . writeUnsignedNumber ( 3 , buf . length ) ;
269+ this . writeUnsignedNumber ( 1 , num ) ;
270+ this . writeUnsignedNumber ( 3 , 0 ) ;
271+ this . writeBuffer ( buf ) ;
272+
273+ var packet = this . _buffer ;
274+
275+ this . _buffer = origBuffer ;
276+ this . _offset = origOffset ;
277+
278+ return packet ;
279+ } ;
280+
281+ PacketWriter . prototype . _toPacket = function _toPacket ( num , buf ) {
282+ var origBuffer = this . _buffer ;
283+ var origOffset = this . _offset ;
284+
285+ this . _buffer = Buffer . allocUnsafe ( buf . length + PACKET_HEADER_LENGTH ) ;
286+ this . _offset = 0 ;
287+
288+ this . writeUnsignedNumber ( 3 , buf . length ) ;
289+ this . writeUnsignedNumber ( 1 , num ) ;
290+ this . writeBuffer ( buf ) ;
291+
292+ var packet = this . _buffer ;
293+
294+ this . _buffer = origBuffer ;
295+ this . _offset = origOffset ;
296+
297+ return packet ;
298+ } ;
0 commit comments