From f7b7b18b4a52f452c853a29ee96ad6dab9c0c8a3 Mon Sep 17 00:00:00 2001 From: ZehMatt Date: Thu, 27 Jul 2017 05:12:50 +0200 Subject: [PATCH] Refactored asserts always calling the function regardless of expression. --- src/openrct2/core/Guard.cpp | 7 ++----- src/openrct2/core/Guard.hpp | 14 +++++++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/openrct2/core/Guard.cpp b/src/openrct2/core/Guard.cpp index ffb8546740..049c1cd79a 100644 --- a/src/openrct2/core/Guard.cpp +++ b/src/openrct2/core/Guard.cpp @@ -34,12 +34,9 @@ extern "C" { - void openrct2_assert(bool expression, const char * message, ...) + void openrct2_assert_va(bool expression, const char * message, va_list va) { - va_list args; - va_start(args, message); - Guard::Assert_VA(expression, message, args); - va_end(args); + Guard::Assert_VA(expression, message, va); } } diff --git a/src/openrct2/core/Guard.hpp b/src/openrct2/core/Guard.hpp index 11b819d441..65bf9df4fe 100644 --- a/src/openrct2/core/Guard.hpp +++ b/src/openrct2/core/Guard.hpp @@ -16,17 +16,25 @@ #pragma once +#include + #ifdef __cplusplus extern "C" { #endif // __cplusplus -void openrct2_assert(bool expression, const char * message, ...); +void openrct2_assert_va(bool expression, const char * message, va_list va); +inline void openrct2_assert(bool expression, const char * message, ...) +{ + if (!expression) return; + va_list va; + va_start(va, message); + openrct2_assert_va(expression, message, va); + va_end(va); +} #ifdef __cplusplus } -#include - enum class ASSERT_BEHAVIOUR { ABORT,