From 03f949b6697f89346d67f21b9b55c35dbf80e903 Mon Sep 17 00:00:00 2001 From: sowle Date: Wed, 6 Jul 2022 02:59:07 +0200 Subject: [PATCH] crypto_assert re-implemented using exceptions --- src/crypto/crypto-sugar.h | 4 ---- src/crypto/crypto.cpp | 6 +++--- src/crypto/crypto.h | 3 +++ 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/crypto/crypto-sugar.h b/src/crypto/crypto-sugar.h index 14046d61..6b04b077 100644 --- a/src/crypto/crypto-sugar.h +++ b/src/crypto/crypto-sugar.h @@ -16,10 +16,6 @@ namespace crypto #include "crypto/crypto-ops.h" } // extern "C" -#define CRYPTO_STR_(X) #X -#define CRYPTO_STR(X) CRYPTO_STR_(X) -#define CRYPTO_CHECK_AND_THROW_MES(cond, msg) if (!(cond)) { throw std::runtime_error(msg " @ " __FILE__ ":" CRYPTO_STR(__LINE__)); } - // // Helpers // diff --git a/src/crypto/crypto.cpp b/src/crypto/crypto.cpp index 7210cd3c..37701cd7 100644 --- a/src/crypto/crypto.cpp +++ b/src/crypto/crypto.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2019 Zano Project +// Copyright (c) 2014-2022 Zano Project // Copyright (c) 2014-2018 The Louisdor Project // Copyright (c) 2012-2013 The Cryptonote developers // Distributed under the MIT/X11 software license, see the accompanying @@ -19,9 +19,9 @@ #include "hash.h" #if !defined(NDEBUG) -# define crypto_assert(expression) assert(expression) +# define crypto_assert(expression) assert(expression); CRYPTO_CHECK_AND_THROW_MES(expression, #expression) #else -# define crypto_assert(expression) ((void)0) +# define crypto_assert(expression) CRYPTO_CHECK_AND_THROW_MES(expression, #expression) #endif namespace crypto { diff --git a/src/crypto/crypto.h b/src/crypto/crypto.h index aa79f4e0..160929f8 100644 --- a/src/crypto/crypto.h +++ b/src/crypto/crypto.h @@ -17,6 +17,9 @@ #include "hash.h" #include "warnings.h" +#define CRYPTO_STR_(X) #X +#define CRYPTO_STR(X) CRYPTO_STR_(X) +#define CRYPTO_CHECK_AND_THROW_MES(cond, msg) if (!(cond)) { throw std::runtime_error(msg " @ " __FILE__ ":" CRYPTO_STR(__LINE__)); } PUSH_GCC_WARNINGS DISABLE_CLANG_WARNING(unused-private-field)