summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2018-05-18 20:45:39 +1000
committer Vas Crabb <vas@vastheman.com>2018-05-18 20:45:39 +1000
commit74ca2733d06ae8a93501bc80ac5907b61a0c0299 (patch)
tree6c5f8eb1c9b80cf894dd7ad264b2527f9ea4c8c5 /src/emu
parent35fa4073720faba2320d6f792b08f17077c68693 (diff)
try this for size - emu.h no net change (nw)
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/debug/dvmemory.cpp21
-rw-r--r--src/emu/save.cpp22
-rw-r--r--src/emu/save.h1
3 files changed, 9 insertions, 35 deletions
diff --git a/src/emu/debug/dvmemory.cpp b/src/emu/debug/dvmemory.cpp
index f87f372c3dc..33efa5edba8 100644
--- a/src/emu/debug/dvmemory.cpp
+++ b/src/emu/debug/dvmemory.cpp
@@ -14,7 +14,9 @@
#include "debugcpu.h"
#include "debugger.h"
+#include <algorithm>
#include <ctype.h>
+#include <tuple>
//**************************************************************************
@@ -154,8 +156,8 @@ void debug_view_memory::enumerate_sources()
}
// finally add all global array symbols in alphabetical order
- std::vector<std::string> itemnames;
- itemnames.resize(machine().save().registration_count());
+ std::vector<std::tuple<std::string, void *, u32, u32> > itemnames;
+ itemnames.reserve(machine().save().registration_count());
for (int itemnum = 0; itemnum < machine().save().registration_count(); itemnum++)
{
@@ -163,25 +165,20 @@ void debug_view_memory::enumerate_sources()
void *base;
std::string name_string(machine().save().indexed_item(itemnum, base, valsize, valcount));
- itemnames[itemnum] = name_string;
+ itemnames.emplace_back(std::move(name_string), base, valsize, valcount);
}
- std::sort(itemnames.begin(), itemnames.end());
+ std::sort(itemnames.begin(), itemnames.end(), [] (auto const &x, auto const &y) { return std::get<0>(x) < std::get<0>(y); });
- for (int itemnum = 0; itemnum < machine().save().registration_count(); itemnum++)
+ for (auto const &item : itemnames)
{
- name = itemnames[itemnum];
- const char *itemname = name.c_str();
+ const char *itemname = std::get<0>(item).c_str();
// add pretty much anything that's not a timer (we may wish to cull other items later)
// also, don't trim the front of the name, it's important to know which VIA6522 we're looking at, e.g.
if (strncmp(itemname, "timer/", 6))
{
- u32 valsize, valcount;
- void *base;
- machine().save().named_item(name, base, valsize, valcount);
-
- m_source_list.append(*global_alloc(debug_view_memory_source(itemname, base, valsize, valcount)));
+ m_source_list.append(*global_alloc(debug_view_memory_source(itemname, std::get<1>(item), std::get<2>(item), std::get<3>(item))));
}
}
diff --git a/src/emu/save.cpp b/src/emu/save.cpp
index 33aaf60e725..767aadb5ad9 100644
--- a/src/emu/save.cpp
+++ b/src/emu/save.cpp
@@ -108,28 +108,6 @@ const char *save_manager::indexed_item(int index, void *&base, u32 &valsize, u32
//-------------------------------------------------
-// named_item - return an item with the given
-// name
-//-------------------------------------------------
-
-void save_manager::named_item(std::string name, void *&base, u32 &valsize, u32 &valcount) const
-{
- for (auto it = m_entry_list.begin(); it != m_entry_list.end(); ++it)
- {
- if (it->get()->m_name.compare(name) == 0)
- {
- state_entry *entry = it->get();
-
- base = entry->m_data;
- valsize = entry->m_typesize;
- valcount = entry->m_typecount;
- break;
- }
- }
-}
-
-
-//-------------------------------------------------
// register_presave - register a pre-save
// function callback
//-------------------------------------------------
diff --git a/src/emu/save.h b/src/emu/save.h
index f72a27af21c..baf18258d09 100644
--- a/src/emu/save.h
+++ b/src/emu/save.h
@@ -106,7 +106,6 @@ public:
// registration control
void allow_registration(bool allowed = true);
const char *indexed_item(int index, void *&base, u32 &valsize, u32 &valcount) const;
- void named_item(std::string name, void *&base, u32 &valsize, u32 &valcount) const;
// function registration
void register_presave(save_prepost_delegate func);