Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYash Ladha <yashladhapankajladha123@gmail.com>2020-10-21 04:04:10 +0300
committerGireesh Punathil <gpunathi@in.ibm.com>2020-10-24 10:27:21 +0300
commit4d5444981afa7b8579a557be0bf85a79a21a37d5 (patch)
tree4b43060586213b9ed4d1718b92f88a66c0221c1d
parentfdaf9cbfe3fad453d3d7c67c77b462834543506f (diff)
stream: fix duplicate logic in stream destroy
Fix duplicate logic in stream destroy as the same logic is being shared across methods and thus can be encapsulated into a single method. PR-URL: https://github.com/nodejs/node/pull/35727 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Ricky Zhou <0x19951125@gmail.com>
-rw-r--r--lib/internal/streams/destroy.js38
1 files changed, 16 insertions, 22 deletions
diff --git a/lib/internal/streams/destroy.js b/lib/internal/streams/destroy.js
index 510f7a40c8d..7477ec97379 100644
--- a/lib/internal/streams/destroy.js
+++ b/lib/internal/streams/destroy.js
@@ -8,6 +8,20 @@ const { Symbol } = primordials;
const kDestroy = Symbol('kDestroy');
const kConstruct = Symbol('kConstruct');
+function checkError(err, w, r) {
+ if (err) {
+ // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364
+ err.stack;
+
+ if (w && !w.errored) {
+ w.errored = err;
+ }
+ if (r && !r.errored) {
+ r.errored = err;
+ }
+ }
+}
+
// Backwards compat. cb() is undocumented and unused in core but
// unfortunately might be used by modules.
function destroy(err, cb) {
@@ -24,20 +38,10 @@ function destroy(err, cb) {
return this;
}
- if (err) {
- // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364
- err.stack;
-
- if (w && !w.errored) {
- w.errored = err;
- }
- if (r && !r.errored) {
- r.errored = err;
- }
- }
// We set destroyed to true before firing error callbacks in order
// to make it re-entrance safe in case destroy() is called within callbacks
+ checkError(err, w, r);
if (w) {
w.destroyed = true;
@@ -66,17 +70,7 @@ function _destroy(self, err, cb) {
called = true;
- if (err) {
- // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364
- err.stack;
-
- if (w && !w.errored) {
- w.errored = err;
- }
- if (r && !r.errored) {
- r.errored = err;
- }
- }
+ checkError(err, w, r);
if (w) {
w.closed = true;