diff options
author | couriersud <couriersud@arcor.de> | 2015-01-14 02:11:09 +0100 |
---|---|---|
committer | couriersud <couriersud@arcor.de> | 2015-01-14 02:11:09 +0100 |
commit | 9a168f7c0d02a46098277e98f74f9092c493eda3 (patch) | |
tree | 1219bb052165877b44a61eea47c287a50ed444ea | |
parent | 53ee1c4138a2c4a761c2fe75d44c9d0cf8556f30 (diff) |
Remove inlining of non-performance relevant exceptions and fatalerror.
-rw-r--r-- | src/emu/emucore.c | 83 | ||||
-rw-r--r-- | 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 //************************************************************************** |