summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-08-28 15:33:03 +0200
committerSergei Golubchik <serg@mariadb.org>2017-08-28 15:33:03 +0200
commit1a503b27864a0e1b90ef8e66a830e50a68f38246 (patch)
tree5d57c2615aa605106a37ed35ae36ce0fd63ccb2d /include
parentc10fadb9d9ff2cba55864f0b7d4f5211f7fe76c9 (diff)
downloadmariadb-git-1a503b27864a0e1b90ef8e66a830e50a68f38246.tar.gz
don't flush dbug buffers for every assert
only do it before crashing. Otherwise it introduces a noticable slowdown and, most importantly, changes errno, when the caller doesn't expect it.
Diffstat (limited to 'include')
-rw-r--r--include/my_dbug.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/my_dbug.h b/include/my_dbug.h
index 1e0aaf680f8..b9194428f18 100644
--- a/include/my_dbug.h
+++ b/include/my_dbug.h
@@ -102,8 +102,8 @@ extern const char* _db_get_func_(void);
#define DBUG_END() _db_end_ ()
#define DBUG_LOCK_FILE _db_lock_file_()
#define DBUG_UNLOCK_FILE _db_unlock_file_()
-#define DBUG_ASSERT(A) ( _db_flush_(), assert(A) )
-#define DBUG_SLOW_ASSERT(A) ( _db_flush_(), assert(A) )
+#define DBUG_ASSERT(A) do { if (!(A)) { _db_flush_(); assert(A); }} while (0)
+#define DBUG_SLOW_ASSERT(A) DBUG_ASSERT(A)
#define DBUG_ASSERT_EXISTS
#define DBUG_EXPLAIN(buf,len) _db_explain_(0, (buf),(len))
#define DBUG_EXPLAIN_INITIAL(buf,len) _db_explain_init_((buf),(len))