diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/cpu/x86log.cpp | 6 | ||||
-rw-r--r-- | src/emu/softlist.cpp | 24 | ||||
-rw-r--r-- | src/emu/ui/ui.cpp | 30 | ||||
-rw-r--r-- | src/emu/ui/ui.h | 32 | ||||
-rw-r--r-- | src/osd/modules/sync/sync_ntc.cpp | 7 | ||||
-rw-r--r-- | src/osd/modules/sync/sync_tc.cpp | 7 | ||||
-rw-r--r-- | src/osd/sdl/output.cpp | 6 |
7 files changed, 55 insertions, 57 deletions
diff --git a/src/devices/cpu/x86log.cpp b/src/devices/cpu/x86log.cpp index c9cb81e78e9..4ed80f06131 100644 --- a/src/devices/cpu/x86log.cpp +++ b/src/devices/cpu/x86log.cpp @@ -146,11 +146,7 @@ void x86log_disasm_code_range(x86log_context *log, const char *label, x86code *s /* otherwise, do a disassembly of the current instruction */ else { -#ifdef PTR64 - bytes = i386_dasm_one_ex(buffer, (FPTR)cur, cur, 64) & DASMFLAG_LENGTHMASK; -#else - bytes = i386_dasm_one_ex(buffer, (FPTR)cur, cur, 32) & DASMFLAG_LENGTHMASK; -#endif + bytes = i386_dasm_one_ex(buffer, (FPTR)cur, cur, sizeof(void *) * 8) & DASMFLAG_LENGTHMASK; } /* if we have a matching comment, output it */ diff --git a/src/emu/softlist.cpp b/src/emu/softlist.cpp index bab8ed3a3e9..079772c73a2 100644 --- a/src/emu/softlist.cpp +++ b/src/emu/softlist.cpp @@ -31,7 +31,7 @@ class softlist_parser { public: // construction (== execution) - softlist_parser(software_list_device &list, std::string &errors); + softlist_parser(software_list_device &list, std::ostringstream &errors); private: enum parse_position @@ -51,7 +51,7 @@ private: const char *parser_error() const { return XML_ErrorString(XML_GetErrorCode(m_parser)); } // internal error helpers - void ATTR_PRINTF(2,3) parse_error(const char *fmt, ...); + template <typename Format, typename... Params> void parse_error(Format &&fmt, Params &&... args); void unknown_tag(const char *tagname) { parse_error("Unknown tag: %s", tagname); } void unknown_attribute(const char *attrname) { parse_error("Unknown attribute: %s", attrname); } @@ -77,7 +77,7 @@ private: // internal parsing state software_list_device & m_list; - std::string & m_errors; + std::ostringstream & m_errors; XML_Parser m_parser; bool m_done; bool m_data_accum_expected; @@ -482,8 +482,10 @@ void software_list_device::parse() if (filerr == FILERR_NONE) { // parse if no error - softlist_parser parser(*this, m_errors); + std::ostringstream errs; + softlist_parser parser(*this, errs); m_file.close(); + m_errors = errs.str(); } else m_errors = string_format("Error opening file: %s\n", filename()); @@ -647,7 +649,7 @@ void software_list_device::internal_validity_check(validity_checker &valid) // softlist_parser - constructor //------------------------------------------------- -softlist_parser::softlist_parser(software_list_device &list, std::string &errors) +softlist_parser::softlist_parser(software_list_device &list, std::ostringstream &errors) : m_list(list), m_errors(errors), m_done(false), @@ -723,19 +725,17 @@ void softlist_parser::expat_free(void *ptr) // filename, line and column information //------------------------------------------------- -void ATTR_PRINTF(2,3) softlist_parser::parse_error(const char *fmt, ...) +template <typename Format, typename... Params> +inline void softlist_parser::parse_error(Format &&fmt, Params &&... args) { // always start with filename(line.column): - m_errors.append(string_format("%s(%d.%d): ", filename(), line(), column())); + stream_format(m_errors, "%s(%d.%d): ", filename(), line(), column()); // append the remainder of the string - va_list va; - va_start(va, fmt); - strcatvprintf(m_errors, fmt, va); - va_end(va); + stream_format(m_errors, std::forward<Format>(fmt), std::forward<Params>(args)...); // append a newline at the end - m_errors.append("\n"); + m_errors.put('\n'); } diff --git a/src/emu/ui/ui.cpp b/src/emu/ui/ui.cpp index b54de0e093e..d3501bfbe42 100644 --- a/src/emu/ui/ui.cpp +++ b/src/emu/ui/ui.cpp @@ -112,13 +112,13 @@ static const char *s_color_list[] = { ***************************************************************************/ // messagebox buffer -static std::string messagebox_text; -static std::string messagebox_poptext; -static rgb_t messagebox_backcolor; +std::string ui_manager::messagebox_text; +std::string ui_manager::messagebox_poptext; +rgb_t ui_manager::messagebox_backcolor; // slider info -static slider_state *slider_list; -static slider_state *slider_current; +slider_state *ui_manager::slider_list; +slider_state *ui_manager::slider_current; /*************************************************************************** @@ -914,26 +914,6 @@ void ui_manager::draw_message_window(render_container *container, const char *te //------------------------------------------------- -// popup_time - popup a message for a specific -// amount of time -//------------------------------------------------- - -void CLIB_DECL ui_manager::popup_time(int seconds, const char *text, ...) -{ - va_list arg; - - // extract the text - va_start(arg,text); - strvprintf(messagebox_poptext, text, arg); - messagebox_backcolor = UI_BACKGROUND_COLOR; - va_end(arg); - - // set a timer - m_popup_text_end = osd_ticks() + osd_ticks_per_second() * seconds; -} - - -//------------------------------------------------- // show_fps_temp - show the FPS counter for // a specific period of time //------------------------------------------------- diff --git a/src/emu/ui/ui.h b/src/emu/ui/ui.h index 81034500733..3d2400b08ff 100644 --- a/src/emu/ui/ui.h +++ b/src/emu/ui/ui.h @@ -144,7 +144,7 @@ public: void draw_text_box(render_container *container, const char *text, int justify, float xpos, float ypos, rgb_t backcolor); void draw_message_window(render_container *container, const char *text); - void CLIB_DECL popup_time(int seconds, const char *text, ...) ATTR_PRINTF(3,4); + template <typename Format, typename... Params> void popup_time(int seconds, Format &&fmt, Params &&... args); void show_fps_temp(double seconds); void set_show_fps(bool show); bool show_fps() const; @@ -205,6 +205,14 @@ private: bool m_load_save_hold; ui_options m_ui_options; + // static variables + static std::string messagebox_text; + static std::string messagebox_poptext; + static rgb_t messagebox_backcolor; + + static slider_state *slider_list; + static slider_state *slider_current; + // text generators std::string &disclaimer_string(std::string &buffer); std::string &warnings_string(std::string &buffer); @@ -227,4 +235,26 @@ private: ***************************************************************************/ rgb_t decode_ui_color(int id, running_machine *machine = nullptr); int get_font_rows(running_machine *machine = nullptr); + + +/*************************************************************************** + MEMBER TEMPLATES +***************************************************************************/ + +//------------------------------------------------- +// popup_time - popup a message for a specific +// amount of time +//------------------------------------------------- + +template <typename Format, typename... Params> +void ui_manager::popup_time(int seconds, Format &&fmt, Params &&... args) +{ + // extract the text + messagebox_poptext = string_format(std::forward<Format>(fmt), std::forward<Params>(args)...); + messagebox_backcolor = UI_BACKGROUND_COLOR; + + // set a timer + m_popup_text_end = osd_ticks() + osd_ticks_per_second() * seconds; +} + #endif /* __USRINTRF_H__ */ diff --git a/src/osd/modules/sync/sync_ntc.cpp b/src/osd/modules/sync/sync_ntc.cpp index c78f67ce64a..4ff70a57c09 100644 --- a/src/osd/modules/sync/sync_ntc.cpp +++ b/src/osd/modules/sync/sync_ntc.cpp @@ -43,11 +43,8 @@ struct osd_event { pthread_cond_t cond; volatile INT32 autoreset; volatile INT32 signalled; -#ifdef PTR64 - INT8 padding[40]; // Fill a 64-byte cache line -#else - INT8 padding[48]; // A bit more padding -#endif + // Fill a 64-byte cache line (a bit more padding with smaller pointers) + INT8 padding[(sizeof(void *) >= 8) ? 40 : 48]; }; diff --git a/src/osd/modules/sync/sync_tc.cpp b/src/osd/modules/sync/sync_tc.cpp index 64a6a760e96..1ebb2879ccf 100644 --- a/src/osd/modules/sync/sync_tc.cpp +++ b/src/osd/modules/sync/sync_tc.cpp @@ -43,11 +43,8 @@ struct osd_event { pthread_cond_t cond; volatile INT32 autoreset; volatile INT32 signalled; -#ifdef PTR64 - INT8 padding[40]; // Fill a 64-byte cache line -#else - INT8 padding[48]; // A bit more padding -#endif + // Fill a 64-byte cache line (a bit more padding with smaller pointers) + INT8 padding[(sizeof(void *) >= 8) ? 40 : 48]; }; //============================================================ diff --git a/src/osd/sdl/output.cpp b/src/osd/sdl/output.cpp index 34cf7523d8b..f2348f592e2 100644 --- a/src/osd/sdl/output.cpp +++ b/src/osd/sdl/output.cpp @@ -34,10 +34,8 @@ #ifdef PTR64 #define PID_FMT "%ld" -#define PID_CAST long #else #define PID_FMT "%d" -#define PID_CAST int #endif //============================================================ @@ -60,9 +58,9 @@ static void notifier_callback(const char *outname, INT32 value, void *param); // osd_get_pid //============================================================ -PID_CAST osd_getpid(void) +intptr_t osd_getpid(void) { - return (PID_CAST) getpid(); + return intptr_t(getpid()); } //============================================================ |