From 9a168f7c0d02a46098277e98f74f9092c493eda3 Mon Sep 17 00:00:00 2001 From: couriersud Date: Wed, 14 Jan 2015 02:11:09 +0100 Subject: Remove inlining of non-performance relevant exceptions and fatalerror. --- src/emu/emucore.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/emu/emucore.h | 83 +++---------------------------------------------------- 2 files changed, 86 insertions(+), 80 deletions(-) diff --git a/src/emu/emucore.c b/src/emu/emucore.c index 514401687c6..923ba0e1187 100644 --- a/src/emu/emucore.c +++ b/src/emu/emucore.c @@ -1,6 +1,6 @@ /*************************************************************************** - mamecore.c + emucore.c Simple core functions that are defined in emucore.h and which may need to be accessed by other MAME-related tools. @@ -11,6 +11,69 @@ ****************************************************************************/ #include "emu.h" +#include "emucore.h" +#include "osdcore.h" + +emu_fatalerror::emu_fatalerror(const char *format, ...) +: code(0) +{ + if (format == NULL) + { + text[0] = '\0'; + } + else + { + va_list ap; + va_start(ap, format); + vsprintf(text, format, ap); + va_end(ap); + } + osd_break_into_debugger(text); +} + +emu_fatalerror::emu_fatalerror(const char *format, va_list ap) +: code(0) +{ + if (format == NULL) + { + text[0] = '\0'; + } + else + { + vsprintf(text, format, ap); + } + osd_break_into_debugger(text); +} + +emu_fatalerror::emu_fatalerror(int _exitcode, const char *format, ...) +: code(_exitcode) +{ + if (format == NULL) + { + text[0] = '\0'; + } + else + { + va_list ap; + va_start(ap, format); + vsprintf(text, format, ap); + va_end(ap); + } +} + +emu_fatalerror::emu_fatalerror(int _exitcode, const char *format, va_list ap) +: code(_exitcode) +{ + if (format == NULL) + { + text[0] = '\0'; + } + else + { + vsprintf(text, format, ap); + } +} + void report_bad_cast(const std::type_info &src_type, const std::type_info &dst_type) { @@ -23,3 +86,21 @@ void report_bad_device_cast(const device_t *dev, const std::type_info &src_type, throw emu_fatalerror("Error: bad downcast<> or device<>. Tried to convert the device %s (%s) of type %s to a %s, which are incompatible.\n", dev->tag(), dev->name(), src_type.name(), dst_type.name()); } + +void fatalerror(const char *format, ...) +{ + va_list ap; + va_start(ap, format); + emu_fatalerror error(format, ap); + va_end(ap); + throw error; +} + +void fatalerror_exitcode(running_machine &machine, int exitcode, const char *format, ...) +{ + va_list ap; + va_start(ap, format); + emu_fatalerror error(exitcode, format, ap); + va_end(ap); + throw error; +} diff --git a/src/emu/emucore.h b/src/emu/emucore.h index cc064ee3ddc..f6a3ff67748 100644 --- a/src/emu/emucore.h +++ b/src/emu/emucore.h @@ -289,65 +289,10 @@ class emu_exception : public std::exception { }; class emu_fatalerror : public emu_exception { public: - emu_fatalerror(const char *format, ...) ATTR_PRINTF(2,3) - : code(0) - { - if (format == NULL) - { - text[0] = '\0'; - } - else - { - va_list ap; - va_start(ap, format); - vsprintf(text, format, ap); - va_end(ap); - } - osd_break_into_debugger(text); - } - - emu_fatalerror(const char *format, va_list ap) - : code(0) - { - if (format == NULL) - { - text[0] = '\0'; - } - else - { - vsprintf(text, format, ap); - } - osd_break_into_debugger(text); - } - - emu_fatalerror(int _exitcode, const char *format, ...) ATTR_PRINTF(3,4) - : code(_exitcode) - { - if (format == NULL) - { - text[0] = '\0'; - } - else - { - va_list ap; - va_start(ap, format); - vsprintf(text, format, ap); - va_end(ap); - } - } - - emu_fatalerror(int _exitcode, const char *format, va_list ap) - : code(_exitcode) - { - if (format == NULL) - { - text[0] = '\0'; - } - else - { - vsprintf(text, format, ap); - } - } + emu_fatalerror(const char *format, ...) ATTR_PRINTF(2,3); + emu_fatalerror(const char *format, va_list ap); + emu_fatalerror(int _exitcode, const char *format, ...) ATTR_PRINTF(3,4); + emu_fatalerror(int _exitcode, const char *format, va_list ap); const char *string() const { return text; } int exitcode() const { return code; } @@ -421,26 +366,6 @@ inline _Dest downcast(_Source &src) ATTR_NORETURN void fatalerror(const char *format, ...) ATTR_PRINTF(1,2); ATTR_NORETURN void fatalerror_exitcode(running_machine &machine, int exitcode, const char *format, ...) ATTR_PRINTF(3,4); -inline void fatalerror(const char *format, ...) -{ - va_list ap; - va_start(ap, format); - emu_fatalerror error(format, ap); - va_end(ap); - throw error; -} - -inline void fatalerror_exitcode(running_machine &machine, int exitcode, const char *format, ...) -{ - va_list ap; - va_start(ap, format); - emu_fatalerror error(exitcode, format, ap); - va_end(ap); - throw error; -} - - - //************************************************************************** // INLINE FUNCTIONS //************************************************************************** -- cgit v1.2.3