From 2adbc7836b0150f7be0ecc0d663d1277125a2374 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Fri, 1 Mar 2019 10:04:30 -0800 Subject: [PATCH] refactor: prevent node macros from overriding base (#17178) --- atom/common/node_includes.h | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/atom/common/node_includes.h b/atom/common/node_includes.h index 639f7f964e02..1ce45edb8e51 100644 --- a/atom/common/node_includes.h +++ b/atom/common/node_includes.h @@ -17,18 +17,32 @@ // again. But we still need the tracing functions, so declaring them. #define SRC_TRACING_TRACE_EVENT_H_ +#pragma push_macro("ASSERT") +#pragma push_macro("CHECK") +#pragma push_macro("CHECK_EQ") +#pragma push_macro("CHECK_GE") +#pragma push_macro("CHECK_GT") +#pragma push_macro("CHECK_LE") +#pragma push_macro("CHECK_LT") +#pragma push_macro("CHECK_NE") +#pragma push_macro("DISALLOW_COPY_AND_ASSIGN") +#pragma push_macro("LIKELY") +#pragma push_macro("NO_RETURN") +#pragma push_macro("UNLIKELY") + #undef ASSERT #undef CHECK #undef CHECK_EQ -#undef CHECK_NE #undef CHECK_GE #undef CHECK_GT #undef CHECK_LE #undef CHECK_LT -#undef UNLIKELY +#undef CHECK_NE #undef DISALLOW_COPY_AND_ASSIGN -#undef NO_RETURN #undef LIKELY +#undef NO_RETURN +#undef UNLIKELY + #undef debug_string // This is defined in macOS SDK in AssertMacros.h. #undef require_string // This is defined in macOS SDK in AssertMacros.h. #include "env-inl.h" @@ -39,6 +53,19 @@ #include "node_options.h" #include "node_platform.h" +#pragma pop_macro("ASSERT") +#pragma pop_macro("CHECK") +#pragma pop_macro("CHECK_EQ") +#pragma pop_macro("CHECK_GE") +#pragma pop_macro("CHECK_GT") +#pragma pop_macro("CHECK_LE") +#pragma pop_macro("CHECK_LT") +#pragma pop_macro("CHECK_NE") +#pragma pop_macro("DISALLOW_COPY_AND_ASSIGN") +#pragma pop_macro("LIKELY") +#pragma pop_macro("NO_RETURN") +#pragma pop_macro("UNLIKELY") + namespace node { namespace tracing {