diff options
Diffstat (limited to 'src/emu/emucore.h')
-rw-r--r-- | src/emu/emucore.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/emu/emucore.h b/src/emu/emucore.h index 23f8808a739..a9ca5b35ef9 100644 --- a/src/emu/emucore.h +++ b/src/emu/emucore.h @@ -31,6 +31,21 @@ #include <exception> #include <typeinfo> +// standard assertion macros +#undef assert +#undef assert_always + +#ifdef MAME_DEBUG_FAST +#define assert(x) ((void)0) +#define assert_always(x, msg) ((void)0) +#elif MAME_DEBUG +#define assert(x) do { if (!(x)) throw emu_fatalerror("assert: %s:%d: %s", __FILE__, __LINE__, #x); } while (0) +#define assert_always(x, msg) do { if (!(x)) throw emu_fatalerror("Fatal error: %s\nCaused by assert: %s:%d: %s", msg, __FILE__, __LINE__, #x); } while (0) +#else +#define assert(x) do { } while (0) +#define assert_always(x, msg) do { if (!(x)) throw emu_fatalerror("Fatal error: %s (%s:%d)", msg, __FILE__, __LINE__); } while (0) +#endif + // core system includes #include "osdcomm.h" #include "astring.h" @@ -214,19 +229,6 @@ inline void operator--(_Type &value, int) { value = (_Type)((int)value - 1); } #define FUNC_NULL NULL, "(null)" -// standard assertion macros -#undef assert -#undef assert_always - -#ifdef MAME_DEBUG -#define assert(x) do { if (!(x)) throw emu_fatalerror("assert: %s:%d: %s", __FILE__, __LINE__, #x); } while (0) -#define assert_always(x, msg) do { if (!(x)) throw emu_fatalerror("Fatal error: %s\nCaused by assert: %s:%d: %s", msg, __FILE__, __LINE__, #x); } while (0) -#else -#define assert(x) do { } while (0) -#define assert_always(x, msg) do { if (!(x)) throw emu_fatalerror("Fatal error: %s (%s:%d)", msg, __FILE__, __LINE__); } while (0) -#endif - - // macros to convert radians to degrees and degrees to radians #define RADIAN_TO_DEGREE(x) ((180.0 / M_PI) * (x)) #define DEGREE_TO_RADIAN(x) ((M_PI / 180.0) * (x)) |