summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/profiler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/profiler.cpp')
-rw-r--r--src/emu/profiler.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/emu/profiler.cpp b/src/emu/profiler.cpp
index 4e14d27ceec..8678c917447 100644
--- a/src/emu/profiler.cpp
+++ b/src/emu/profiler.cpp
@@ -185,14 +185,15 @@ void real_profiler_state::update_text(running_machine &machine)
// this becomes the total; if we end up with 0 for anything, we were just started, so return empty
u64 total = computed;
- m_text.clear();
if (total == 0 || normalize == 0)
{
+ m_text.clear();
return;
}
// loop over all types and generate the string
device_iterator iter(machine.root_device());
+ std::ostringstream stream;
for (curtype = PROFILER_DEVICE_FIRST; curtype < PROFILER_TOTAL; ++curtype)
{
// determine the accumulated time for this type
@@ -202,28 +203,29 @@ void real_profiler_state::update_text(running_machine &machine)
if (computed != 0)
{
// start with the un-normalized percentage
- m_text.append(string_format("%02d%% ", (int)((computed * 100 + total / 2) / total)));
+ util::stream_format(stream, "%02d%% ", (int)((computed * 100 + total / 2) / total));
// followed by the normalized percentage for everything but profiler and idle
if (curtype < PROFILER_PROFILER)
- m_text.append(string_format("%02d%% ", (int)((computed * 100 + normalize / 2) / normalize)));
+ util::stream_format(stream, "%02d%% ", (int)((computed * 100 + normalize / 2) / normalize));
// and then the text
if (curtype >= PROFILER_DEVICE_FIRST && curtype <= PROFILER_DEVICE_MAX)
- m_text.append(string_format("'%s'", iter.byindex(curtype - PROFILER_DEVICE_FIRST)->tag()));
+ util::stream_format(stream, "'%s'", iter.byindex(curtype - PROFILER_DEVICE_FIRST)->tag());
else
for (auto & name : names)
if (name.type == curtype)
{
- m_text.append(name.string);
+ stream << name.string;
break;
}
// followed by a carriage return
- m_text.append("\n");
+ stream << '\n';
}
}
// reset data set to 0
memset(m_data, 0, sizeof(m_data));
+ m_text = stream.str();
}