summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/cpu/x86log.cpp6
-rw-r--r--src/emu/softlist.cpp24
-rw-r--r--src/emu/ui/ui.cpp30
-rw-r--r--src/emu/ui/ui.h32
-rw-r--r--src/osd/modules/sync/sync_ntc.cpp7
-rw-r--r--src/osd/modules/sync/sync_tc.cpp7
-rw-r--r--src/osd/sdl/output.cpp6
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());
}
//============================================================