Commit 2b4fe254 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook GitHub Bot

let FOLLY_SAFE_CHECK macro-stringize the expression only once

Reviewed By: ot, luciang

Differential Revision: D33864764

fbshipit-source-id: 9839f578bd0fe5e8f69d5299287a59cb471f8cf3
parent 72c2e98e
...@@ -523,7 +523,7 @@ void flushStderr() { ...@@ -523,7 +523,7 @@ void flushStderr() {
if (arg.expr) { if (arg.expr) {
writeStderr("\n\nAssertion failure: "); writeStderr("\n\nAssertion failure: ");
writeStderr(arg.expr + 1, strlen(arg.expr) - 2); writeStderr(arg.expr);
} }
if (*arg.msg_types != safe_assert_msg_type::term) { if (*arg.msg_types != safe_assert_msg_type::term) {
writeStderr("\nMessage: "); writeStderr("\nMessage: ");
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#define FOLLY_DETAIL_SAFE_CHECK_LINKAGE static #define FOLLY_DETAIL_SAFE_CHECK_LINKAGE static
#endif #endif
#define FOLLY_DETAIL_SAFE_CHECK_IMPL(d, p, expr, expr_s, ...) \ #define FOLLY_DETAIL_SAFE_CHECK_IMPL(d, p, u, expr, ...) \
do { \ do { \
if ((!d || ::folly::kIsDebug || ::folly::kIsSanitize) && \ if ((!d || ::folly::kIsDebug || ::folly::kIsSanitize) && \
!static_cast<bool>(expr)) { \ !static_cast<bool>(expr)) { \
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
__folly_detail_safe_assert_fun = __func__; \ __folly_detail_safe_assert_fun = __func__; \
FOLLY_DETAIL_SAFE_CHECK_LINKAGE constexpr ::folly::detail:: \ FOLLY_DETAIL_SAFE_CHECK_LINKAGE constexpr ::folly::detail:: \
safe_assert_arg __folly_detail_safe_assert_arg{ \ safe_assert_arg __folly_detail_safe_assert_arg{ \
FOLLY_PP_STRINGIZE(expr_s), \ u ? nullptr : #expr, \
__FILE__, \ __FILE__, \
__LINE__, \ __LINE__, \
__folly_detail_safe_assert_fun, \ __folly_detail_safe_assert_fun, \
...@@ -66,8 +66,7 @@ ...@@ -66,8 +66,7 @@
// multi-thread-safe // multi-thread-safe
// async-signal-safe // async-signal-safe
#define FOLLY_SAFE_CHECK(expr, ...) \ #define FOLLY_SAFE_CHECK(expr, ...) \
FOLLY_DETAIL_SAFE_CHECK_IMPL( \ FOLLY_DETAIL_SAFE_CHECK_IMPL(0, 0, 0, expr, __VA_ARGS__)
0, 0, (expr), FOLLY_PP_STRINGIZE(expr), __VA_ARGS__)
// FOLLY_SAFE_DCHECK // FOLLY_SAFE_DCHECK
// //
...@@ -78,8 +77,7 @@ ...@@ -78,8 +77,7 @@
// multi-thread-safe // multi-thread-safe
// async-signal-safe // async-signal-safe
#define FOLLY_SAFE_DCHECK(expr, ...) \ #define FOLLY_SAFE_DCHECK(expr, ...) \
FOLLY_DETAIL_SAFE_CHECK_IMPL( \ FOLLY_DETAIL_SAFE_CHECK_IMPL(1, 0, 0, expr, __VA_ARGS__)
1, 0, (expr), FOLLY_PP_STRINGIZE(expr), __VA_ARGS__)
// FOLLY_SAFE_PCHECK // FOLLY_SAFE_PCHECK
// //
...@@ -89,8 +87,7 @@ ...@@ -89,8 +87,7 @@
// multi-thread-safe // multi-thread-safe
// async-signal-safe // async-signal-safe
#define FOLLY_SAFE_PCHECK(expr, ...) \ #define FOLLY_SAFE_PCHECK(expr, ...) \
FOLLY_DETAIL_SAFE_CHECK_IMPL( \ FOLLY_DETAIL_SAFE_CHECK_IMPL(0, 1, 0, expr, __VA_ARGS__)
0, 1, (expr), FOLLY_PP_STRINGIZE(expr), __VA_ARGS__)
// FOLLY_SAFE_DPCHECK // FOLLY_SAFE_DPCHECK
// //
...@@ -100,8 +97,7 @@ ...@@ -100,8 +97,7 @@
// multi-thread-safe // multi-thread-safe
// async-signal-safe // async-signal-safe
#define FOLLY_SAFE_DPCHECK(expr, ...) \ #define FOLLY_SAFE_DPCHECK(expr, ...) \
FOLLY_DETAIL_SAFE_CHECK_IMPL( \ FOLLY_DETAIL_SAFE_CHECK_IMPL(1, 1, 0, expr, __VA_ARGS__)
1, 1, (expr), FOLLY_PP_STRINGIZE(expr), __VA_ARGS__)
// FOLLY_SAFE_FATAL // FOLLY_SAFE_FATAL
// //
...@@ -111,7 +107,7 @@ ...@@ -111,7 +107,7 @@
// multi-thread-safe // multi-thread-safe
// async-signal-safe // async-signal-safe
#define FOLLY_SAFE_FATAL(...) \ #define FOLLY_SAFE_FATAL(...) \
FOLLY_DETAIL_SAFE_CHECK_IMPL(0, 0, false, nullptr, __VA_ARGS__) FOLLY_DETAIL_SAFE_CHECK_IMPL(0, 0, 1, false, __VA_ARGS__)
// FOLLY_SAFE_DFATAL // FOLLY_SAFE_DFATAL
// //
...@@ -121,7 +117,7 @@ ...@@ -121,7 +117,7 @@
// multi-thread-safe // multi-thread-safe
// async-signal-safe // async-signal-safe
#define FOLLY_SAFE_DFATAL(...) \ #define FOLLY_SAFE_DFATAL(...) \
FOLLY_DETAIL_SAFE_CHECK_IMPL(1, 0, false, nullptr, __VA_ARGS__) FOLLY_DETAIL_SAFE_CHECK_IMPL(1, 0, 1, false, __VA_ARGS__)
namespace folly { namespace folly {
namespace detail { namespace detail {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment