diff options
author | Nick Mathewson <nickm@torproject.org> | 2013-07-19 13:40:20 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-07-19 13:40:20 -0400 |
commit | f6d8bc9389db72dc654560d0f86fd3edd3b14934 (patch) | |
tree | 42ff03d119ebcba66978dfdeb9d9d6a8bbd3d729 | |
parent | 5343ee1a06ebb959fc77753898015186b94a5daa (diff) | |
download | tor-f6d8bc9389db72dc654560d0f86fd3edd3b14934.tar tor-f6d8bc9389db72dc654560d0f86fd3edd3b14934.tar.gz |
Refactor the assertion-failure code into a function
-rw-r--r-- | src/common/util.c | 15 | ||||
-rw-r--r-- | src/common/util.h | 14 |
2 files changed, 21 insertions, 8 deletions
diff --git a/src/common/util.c b/src/common/util.c index 25ea13371..814eb1379 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -94,6 +94,20 @@ #endif /* ===== + * Assertion helper. + * ===== */ +/** Helper for tor_assert: report the assertion failure. */ +void +tor_assertion_failed_(const char *fname, unsigned int line, + const char *func, const char *expr) +{ + log_err(LD_BUG, "%s:%u: %s: Assertion %s failed; aborting.", + fname, line, func, expr); + fprintf(stderr,"%s:%u: %s: Assertion %s failed; aborting.\n", + fname, line, func, expr); +} + +/* ===== * Memory management * ===== */ #ifdef USE_DMALLOC @@ -5057,4 +5071,3 @@ tor_weak_random_range(tor_weak_rng_t *rng, int32_t top) } while (result >= top); return result; } - diff --git a/src/common/util.h b/src/common/util.h index f6d828796..1c92c4f5f 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -48,13 +48,13 @@ /** Like assert(3), but send assertion failures to the log as well as to * stderr. */ #define tor_assert(expr) STMT_BEGIN \ - if (PREDICT_UNLIKELY(!(expr))) { \ - log_err(LD_BUG, "%s:%d: %s: Assertion %s failed; aborting.", \ - SHORT_FILE__, __LINE__, __func__, #expr); \ - fprintf(stderr,"%s:%d %s: Assertion %s failed; aborting.\n", \ - SHORT_FILE__, __LINE__, __func__, #expr); \ - abort(); \ - } STMT_END + if (PREDICT_UNLIKELY(!(expr))) { \ + tor_assertion_failed_(SHORT_FILE__, __LINE__, __func__, #expr); \ + abort(); \ + } STMT_END + +void tor_assertion_failed_(const char *fname, unsigned int line, + const char *func, const char *expr); /* If we're building with dmalloc, we want all of our memory allocation * functions to take an extra file/line pair of arguments. If not, not. |