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);
     });
   }