diff --git a/node.gyp b/node.gyp index 3cde4992a75c..8ba0dfebe890 100644 --- a/node.gyp +++ b/node.gyp @@ -714,6 +714,7 @@ 'src/node_perf_common.h', 'src/node_platform.h', 'src/node_process.h', + 'src/node_process-inl.h', 'src/node_report.h', 'src/node_revert.h', 'src/node_root_certs.h', diff --git a/src/api/hooks.cc b/src/api/hooks.cc index 84c91a2100b1..79fa896a10e9 100644 --- a/src/api/hooks.cc +++ b/src/api/hooks.cc @@ -1,6 +1,6 @@ #include "env-inl.h" #include "node_internals.h" -#include "node_process.h" +#include "node_process-inl.h" #include "async_wrap.h" namespace node { diff --git a/src/env.cc b/src/env.cc index 179a553e9659..30b7ab671f53 100644 --- a/src/env.cc +++ b/src/env.cc @@ -9,7 +9,7 @@ #include "node_errors.h" #include "node_internals.h" #include "node_options-inl.h" -#include "node_process.h" +#include "node_process-inl.h" #include "node_v8_platform-inl.h" #include "node_worker.h" #include "req_wrap-inl.h" diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 81dece656fc3..ebe451106b24 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -12,7 +12,7 @@ #include "node_errors.h" #include "node_internals.h" #include "node_options-inl.h" -#include "node_process.h" +#include "node_process-inl.h" #include "node_url.h" #include "util-inl.h" #include "timer_wrap.h" diff --git a/src/module_wrap.cc b/src/module_wrap.cc index 90484774eb29..1da35f9f2fda 100644 --- a/src/module_wrap.cc +++ b/src/module_wrap.cc @@ -5,7 +5,7 @@ #include "node_contextify.h" #include "node_errors.h" #include "node_internals.h" -#include "node_process.h" +#include "node_process-inl.h" #include "node_url.h" #include "node_watchdog.h" #include "util-inl.h" diff --git a/src/node.cc b/src/node.cc index 905afd8c235b..b3823235def9 100644 --- a/src/node.cc +++ b/src/node.cc @@ -34,7 +34,7 @@ #include "node_native_module_env.h" #include "node_options-inl.h" #include "node_perf.h" -#include "node_process.h" +#include "node_process-inl.h" #include "node_report.h" #include "node_revert.h" #include "node_v8_platform-inl.h" diff --git a/src/node_crypto.cc b/src/node_crypto.cc index bd40705e6b1a..61db9f04bba1 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -27,7 +27,7 @@ #include "node_crypto_groups.h" #include "node_errors.h" #include "node_mutex.h" -#include "node_process.h" +#include "node_process-inl.h" #include "allocated_buffer-inl.h" #include "tls_wrap.h" // TLSWrap diff --git a/src/node_dir.cc b/src/node_dir.cc index ac5739b99325..a6800a8350d7 100644 --- a/src/node_dir.cc +++ b/src/node_dir.cc @@ -1,6 +1,6 @@ #include "node_dir.h" #include "node_file-inl.h" -#include "node_process.h" +#include "node_process-inl.h" #include "memory_tracker-inl.h" #include "util.h" diff --git a/src/node_env_var.cc b/src/node_env_var.cc index 2b118326e5c4..9192ea334be4 100644 --- a/src/node_env_var.cc +++ b/src/node_env_var.cc @@ -1,7 +1,7 @@ #include "debug_utils-inl.h" #include "env-inl.h" #include "node_errors.h" -#include "node_process.h" +#include "node_process-inl.h" #include // tzset(), _tzset() diff --git a/src/node_errors.cc b/src/node_errors.cc index c69ced947a4e..43e9705ec898 100644 --- a/src/node_errors.cc +++ b/src/node_errors.cc @@ -5,7 +5,7 @@ #include "node_errors.h" #include "node_internals.h" #include "node_report.h" -#include "node_process.h" +#include "node_process-inl.h" #include "node_v8_platform-inl.h" #include "util-inl.h" diff --git a/src/node_file.cc b/src/node_file.cc index 6f565d89fb13..58727908a2cf 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -23,7 +23,7 @@ #include "aliased_buffer.h" #include "memory_tracker-inl.h" #include "node_buffer.h" -#include "node_process.h" +#include "node_process-inl.h" #include "node_stat_watcher.h" #include "util-inl.h" diff --git a/src/node_messaging.cc b/src/node_messaging.cc index 804d520497cf..24b0c48bd76a 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -6,7 +6,7 @@ #include "node_contextify.h" #include "node_buffer.h" #include "node_errors.h" -#include "node_process.h" +#include "node_process-inl.h" #include "util-inl.h" using node::contextify::ContextifyContext; diff --git a/src/node_native_module.cc b/src/node_native_module.cc index dcd63be35db9..9776d12cc1b4 100644 --- a/src/node_native_module.cc +++ b/src/node_native_module.cc @@ -1,5 +1,6 @@ #include "node_native_module.h" #include "util-inl.h" +#include "debug_utils-inl.h" namespace node { namespace native_module { diff --git a/src/node_perf.cc b/src/node_perf.cc index 42bfdd25d298..546cbfc91148 100644 --- a/src/node_perf.cc +++ b/src/node_perf.cc @@ -3,7 +3,7 @@ #include "node_internals.h" #include "node_perf.h" #include "node_buffer.h" -#include "node_process.h" +#include "node_process-inl.h" #include "util-inl.h" #include diff --git a/src/node_process-inl.h b/src/node_process-inl.h new file mode 100644 index 000000000000..21a448cfdb2a --- /dev/null +++ b/src/node_process-inl.h @@ -0,0 +1,26 @@ +#ifndef SRC_NODE_PROCESS_INL_H_ +#define SRC_NODE_PROCESS_INL_H_ + +#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#include "node_process.h" +#include "v8.h" +#include "debug_utils-inl.h" + +namespace node { + +// Call process.emitWarning(str), fmt is a snprintf() format string +template +inline v8::Maybe ProcessEmitWarning(Environment* env, + const char* fmt, + Args&&... args) { + std::string warning = SPrintF(fmt, std::forward(args)...); + + return ProcessEmitWarningGeneric(env, warning.c_str()); +} + +} // namespace node + +#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#endif // SRC_NODE_PROCESS_INL_H_ diff --git a/src/node_process.h b/src/node_process.h index 2e87385348d9..14c8f6591689 100644 --- a/src/node_process.h +++ b/src/node_process.h @@ -25,7 +25,10 @@ v8::Maybe ProcessEmitWarningGeneric(Environment* env, const char* type = nullptr, const char* code = nullptr); -v8::Maybe ProcessEmitWarning(Environment* env, const char* fmt, ...); +template +inline v8::Maybe ProcessEmitWarning(Environment* env, + const char* fmt, + Args&&... args); v8::Maybe ProcessEmitExperimentalWarning(Environment* env, const char* warning); v8::Maybe ProcessEmitDeprecationWarning(Environment* env, diff --git a/src/node_process_events.cc b/src/node_process_events.cc index 0c149b26e334..34f0251cabc0 100644 --- a/src/node_process_events.cc +++ b/src/node_process_events.cc @@ -1,8 +1,7 @@ -#include #include #include "env-inl.h" -#include "node_process.h" +#include "node_process-inl.h" #include "util.h" namespace node { @@ -84,18 +83,6 @@ Maybe ProcessEmitWarningGeneric(Environment* env, return Just(true); } -// Call process.emitWarning(str), fmt is a snprintf() format string -Maybe ProcessEmitWarning(Environment* env, const char* fmt, ...) { - char warning[1024]; - va_list ap; - - va_start(ap, fmt); - vsnprintf(warning, sizeof(warning), fmt, ap); - va_end(ap); - - return ProcessEmitWarningGeneric(env, warning); -} - std::set experimental_warnings; diff --git a/src/node_process_methods.cc b/src/node_process_methods.cc index 4614fdd07119..29950aeb5b16 100644 --- a/src/node_process_methods.cc +++ b/src/node_process_methods.cc @@ -4,7 +4,7 @@ #include "node.h" #include "node_errors.h" #include "node_internals.h" -#include "node_process.h" +#include "node_process-inl.h" #include "util-inl.h" #include "uv.h" #include "v8.h" diff --git a/src/node_process_object.cc b/src/node_process_object.cc index 5bec65805a10..a11241cd3a72 100644 --- a/src/node_process_object.cc +++ b/src/node_process_object.cc @@ -2,7 +2,7 @@ #include "node_internals.h" #include "node_options-inl.h" #include "node_metadata.h" -#include "node_process.h" +#include "node_process-inl.h" #include "node_revert.h" #include "util-inl.h" diff --git a/src/node_task_queue.cc b/src/node_task_queue.cc index b55a2a4387d6..de38e8e7d2ee 100644 --- a/src/node_task_queue.cc +++ b/src/node_task_queue.cc @@ -2,7 +2,7 @@ #include "node.h" #include "node_errors.h" #include "node_internals.h" -#include "node_process.h" +#include "node_process-inl.h" #include "util-inl.h" #include "v8.h" diff --git a/src/signal_wrap.cc b/src/signal_wrap.cc index 693231a3268e..ac7be821ea4f 100644 --- a/src/signal_wrap.cc +++ b/src/signal_wrap.cc @@ -22,7 +22,7 @@ #include "async_wrap-inl.h" #include "env-inl.h" #include "handle_wrap.h" -#include "node_process.h" +#include "node_process-inl.h" #include "util-inl.h" #include "v8.h" diff --git a/src/uv.cc b/src/uv.cc index ba40e705c982..dbec7e505e2d 100644 --- a/src/uv.cc +++ b/src/uv.cc @@ -22,7 +22,7 @@ #include "uv.h" #include "env-inl.h" #include "node.h" -#include "node_process.h" +#include "node_process-inl.h" namespace node {