From f0f31d080a9e3878e3b5f9963d597d01b2f98555 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 16 Mar 2018 14:33:55 +0100 Subject: [PATCH] async_hooks: add copyHooks function This commit introduces a copyHooks function that can be used by storeActiveHooks and restoreActiveHooks to remove some code duplication. PR-URL: https://github.com/nodejs/node/pull/19391 Reviewed-By: Anna Henningsen Reviewed-By: Anatoli Papirovski --- lib/internal/async_hooks.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/internal/async_hooks.js b/lib/internal/async_hooks.js index 6f9b5b0a93eee5..4977af637bd1da 100644 --- a/lib/internal/async_hooks.js +++ b/lib/internal/async_hooks.js @@ -207,11 +207,15 @@ function storeActiveHooks() { // Don't want to make the assumption that kInit to kDestroy are indexes 0 to // 4. So do this the long way. active_hooks.tmp_fields = []; - active_hooks.tmp_fields[kInit] = async_hook_fields[kInit]; - active_hooks.tmp_fields[kBefore] = async_hook_fields[kBefore]; - active_hooks.tmp_fields[kAfter] = async_hook_fields[kAfter]; - active_hooks.tmp_fields[kDestroy] = async_hook_fields[kDestroy]; - active_hooks.tmp_fields[kPromiseResolve] = async_hook_fields[kPromiseResolve]; + copyHooks(active_hooks.tmp_fields, async_hook_fields); +} + +function copyHooks(destination, source) { + destination[kInit] = source[kInit]; + destination[kBefore] = source[kBefore]; + destination[kAfter] = source[kAfter]; + destination[kDestroy] = source[kDestroy]; + destination[kPromiseResolve] = source[kPromiseResolve]; } @@ -219,11 +223,7 @@ function storeActiveHooks() { // during hook callback execution. function restoreActiveHooks() { active_hooks.array = active_hooks.tmp_array; - async_hook_fields[kInit] = active_hooks.tmp_fields[kInit]; - async_hook_fields[kBefore] = active_hooks.tmp_fields[kBefore]; - async_hook_fields[kAfter] = active_hooks.tmp_fields[kAfter]; - async_hook_fields[kDestroy] = active_hooks.tmp_fields[kDestroy]; - async_hook_fields[kPromiseResolve] = active_hooks.tmp_fields[kPromiseResolve]; + copyHooks(async_hook_fields, active_hooks.tmp_fields); active_hooks.tmp_array = null; active_hooks.tmp_fields = null;