mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-08-31 06:26:18 +00:00
Replace t_assert() with Assert().
Also use this assertions for Expects(), Ensures() and Unexpected().
This commit is contained in:
@@ -22,42 +22,6 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
|
||||
|
||||
#include "core/basic_types.h"
|
||||
|
||||
// Release build assertions.
|
||||
inline void t_noop() {
|
||||
}
|
||||
[[noreturn]] inline void t_assert_fail(const char *message, const char *file, int32 line) {
|
||||
auto info = qsl("%1 %2:%3").arg(message).arg(file).arg(line);
|
||||
LOG(("Assertion Failed! ") + info);
|
||||
SignalHandlers::setCrashAnnotation("Assertion", info);
|
||||
|
||||
// Crash with access violation and generate crash report.
|
||||
volatile int *t_assert_nullptr = nullptr;
|
||||
*t_assert_nullptr = 0;
|
||||
|
||||
// Silent the possible failure to comply noreturn warning.
|
||||
std::abort();
|
||||
}
|
||||
#define t_assert_full(condition, message, file, line) ((GSL_UNLIKELY(!(condition))) ? t_assert_fail(message, file, line) : t_noop())
|
||||
#define t_assert_c(condition, comment) t_assert_full(condition, "\"" #condition "\" (" comment ")", __FILE__, __LINE__)
|
||||
#define t_assert(condition) t_assert_full(condition, "\"" #condition "\"", __FILE__, __LINE__)
|
||||
|
||||
// Declare our own versions of Expects() and Ensures().
|
||||
// Let them crash with reports and logging.
|
||||
#ifdef Expects
|
||||
#undef Expects
|
||||
#endif // Expects
|
||||
#define Expects(condition) t_assert_full(condition, "\"" #condition "\"", __FILE__, __LINE__)
|
||||
|
||||
#ifdef Ensures
|
||||
#undef Ensures
|
||||
#endif // Ensures
|
||||
#define Ensures(condition) t_assert_full(condition, "\"" #condition "\"", __FILE__, __LINE__)
|
||||
|
||||
#ifdef Unexpected
|
||||
#undef Unexpected
|
||||
#endif // Unexpected
|
||||
#define Unexpected(message) t_assert_fail("Unexpected: " message, __FILE__, __LINE__)
|
||||
|
||||
// Define specializations for QByteArray for Qt 5.3.2, because
|
||||
// QByteArray in Qt 5.3.2 doesn't declare "pointer" subtype.
|
||||
#ifdef OS_MAC_OLD
|
||||
@@ -667,7 +631,7 @@ public:
|
||||
return data();
|
||||
}
|
||||
T &operator*() const {
|
||||
t_assert(!isNull());
|
||||
Assert(!isNull());
|
||||
return *data();
|
||||
}
|
||||
explicit operator bool() const {
|
||||
@@ -710,7 +674,7 @@ public:
|
||||
return data();
|
||||
}
|
||||
T &operator*() const {
|
||||
t_assert(!isNull());
|
||||
Assert(!isNull());
|
||||
return *data();
|
||||
}
|
||||
explicit operator bool() const {
|
||||
|
Reference in New Issue
Block a user