From b5ac59c82688bb1cbdeb45176247c8878295cb1b Mon Sep 17 00:00:00 2001 From: Stefan <ctndesigner@gmail.com> Date: Tue, 2 Feb 2021 14:59:29 +0100 Subject: [PATCH 1/2] reset compressor/decompressor instead of re-initialize --- lib/permessage-deflate.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/permessage-deflate.js b/lib/permessage-deflate.js index 7d7209b9e..baff407ab 100644 --- a/lib/permessage-deflate.js +++ b/lib/permessage-deflate.js @@ -377,13 +377,12 @@ class PerMessageDeflate { ); if (fin && this.params[`${endpoint}_no_context_takeover`]) { - this._inflate.close(); - this._inflate = null; - } else { - this._inflate[kTotalLength] = 0; - this._inflate[kBuffers] = []; + this._inflate.reset(); } + this._inflate[kTotalLength] = 0; + this._inflate[kBuffers] = []; + callback(null, data); }); } @@ -449,13 +448,12 @@ class PerMessageDeflate { this._deflate[kCallback] = null; if (fin && this.params[`${endpoint}_no_context_takeover`]) { - this._deflate.close(); - this._deflate = null; - } else { - this._deflate[kTotalLength] = 0; - this._deflate[kBuffers] = []; + this._deflate.reset(); } + this._deflate[kTotalLength] = 0; + this._deflate[kBuffers] = []; + callback(null, data); }); } From db34dfbc9826b37e21b66f6a9740da95cdb6a428 Mon Sep 17 00:00:00 2001 From: Stefan <ctndesigner@gmail.com> Date: Tue, 2 Feb 2021 19:05:03 +0100 Subject: [PATCH 2/2] nit: reorder --- lib/permessage-deflate.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/permessage-deflate.js b/lib/permessage-deflate.js index baff407ab..74bf14a23 100644 --- a/lib/permessage-deflate.js +++ b/lib/permessage-deflate.js @@ -376,13 +376,13 @@ class PerMessageDeflate { this._inflate[kTotalLength] ); + this._inflate[kTotalLength] = 0; + this._inflate[kBuffers] = []; + if (fin && this.params[`${endpoint}_no_context_takeover`]) { this._inflate.reset(); } - this._inflate[kTotalLength] = 0; - this._inflate[kBuffers] = []; - callback(null, data); }); } @@ -447,13 +447,13 @@ class PerMessageDeflate { // this._deflate[kCallback] = null; + this._deflate[kTotalLength] = 0; + this._deflate[kBuffers] = []; + if (fin && this.params[`${endpoint}_no_context_takeover`]) { this._deflate.reset(); } - this._deflate[kTotalLength] = 0; - this._deflate[kBuffers] = []; - callback(null, data); }); }