summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Nathan Woods <npwoods@mess.org>2016-07-19 20:39:55 -0400
committer Nathan Woods <npwoods@mess.org>2016-07-19 20:40:45 -0400
commit12369fe758a4dba0454f054bcacd4d9b47b7722c (patch)
tree5bca2296e85fa637fb0e0a002f6382e370798cd2 /src
parent8d9fb8e4a9d293b3b38b60a8d40e0e74ab73ed06 (diff)
const correctness related changes to softlist
Diffstat (limited to 'src')
-rw-r--r--src/emu/diimage.cpp18
-rw-r--r--src/emu/diimage.h8
-rw-r--r--src/emu/romload.cpp2
-rw-r--r--src/emu/softlist.cpp16
-rw-r--r--src/emu/softlist.h10
-rw-r--r--src/frontend/mame/audit.cpp2
-rw-r--r--src/frontend/mame/audit.h2
-rw-r--r--src/frontend/mame/clifront.cpp2
-rw-r--r--src/frontend/mame/mameopts.cpp4
-rw-r--r--src/frontend/mame/ui/selgame.cpp2
-rw-r--r--src/frontend/mame/ui/selsoft.cpp8
11 files changed, 37 insertions, 37 deletions
diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp
index 62f5b131818..e3314bcaaf5 100644
--- a/src/emu/diimage.cpp
+++ b/src/emu/diimage.cpp
@@ -850,7 +850,7 @@ bool device_image_interface::load_software(software_list_device &swlist, const c
UINT32 crc = 0;
bool has_crc = hash_collection(ROM_GETHASHDATA(romp)).crc(crc);
- software_info *swinfo = swlist.find(swname);
+ const software_info *swinfo = swlist.find(swname);
if (swinfo == nullptr)
return false;
@@ -1281,7 +1281,7 @@ void device_image_interface::software_name_split(const char *swlist_swname, std:
}
-software_part *device_image_interface::find_software_item(const char *path, bool restrict_to_interface) const
+const software_part *device_image_interface::find_software_item(const char *path, bool restrict_to_interface) const
{
// split full software name into software list name and short software name
std::string swlist_name, swinfo_name, swpart_name;
@@ -1297,10 +1297,10 @@ software_part *device_image_interface::find_software_item(const char *path, bool
{
if (swlist_name.compare(swlistdev.list_name())==0 || !(swlist_name.length() > 0))
{
- software_info *info = swlistdev.find(swinfo_name.c_str());
+ const software_info *info = swlistdev.find(swinfo_name.c_str());
if (info != nullptr)
{
- software_part *part = info->find_part(swpart_name.c_str(), interface);
+ const software_part *part = info->find_part(swpart_name.c_str(), interface);
if (part != nullptr)
return part;
}
@@ -1312,10 +1312,10 @@ software_part *device_image_interface::find_software_item(const char *path, bool
// gameboy:sml) which is not handled properly by software_name_split
// since the function cannot distinguish between this and the case
// path = swinfo_name:swpart_name
- software_info *info = swlistdev.find(swpart_name.c_str());
+ const software_info *info = swlistdev.find(swpart_name.c_str());
if (info != nullptr)
{
- software_part *part = info->find_part(nullptr, interface);
+ const software_part *part = info->find_part(nullptr, interface);
if (part != nullptr)
return part;
}
@@ -1340,7 +1340,7 @@ software_part *device_image_interface::find_software_item(const char *path, bool
// sw_info and sw_part are also set.
//-------------------------------------------------
-bool device_image_interface::load_software_part(const char *path, software_part *&swpart)
+bool device_image_interface::load_software_part(const char *path, const software_part *&swpart)
{
// if no match has been found, we suggest similar shortnames
swpart = find_software_item(path, true);
@@ -1376,7 +1376,7 @@ bool device_image_interface::load_software_part(const char *path, software_part
const char *requirement = swpart->feature("requirement");
if (requirement != nullptr)
{
- software_part *req_swpart = find_software_item(requirement, false);
+ const software_part *req_swpart = find_software_item(requirement, false);
if (req_swpart != nullptr)
{
device_image_interface *req_image = req_swpart->find_mountable_image(device().mconfig());
@@ -1401,7 +1401,7 @@ std::string device_image_interface::software_get_default_slot(const char *defaul
if (*path != '\0')
{
result.assign(default_card_slot);
- software_part *swpart = find_software_item(path, true);
+ const software_part *swpart = find_software_item(path, true);
if (swpart != nullptr)
{
const char *slot = swpart->feature("slot");
diff --git a/src/emu/diimage.h b/src/emu/diimage.h
index e2c6d3600a0..692910e6060 100644
--- a/src/emu/diimage.h
+++ b/src/emu/diimage.h
@@ -266,8 +266,8 @@ protected:
void image_checkhash();
void update_names(const device_type device_type = nullptr, const char *inst = nullptr, const char *brief = nullptr);
- software_part *find_software_item(const char *path, bool restrict_to_interface) const;
- bool load_software_part(const char *path, software_part *&swpart);
+ const software_part *find_software_item(const char *path, bool restrict_to_interface) const;
+ bool load_software_part(const char *path, const software_part *&swpart);
std::string software_get_default_slot(const char *default_card_slot) const;
// derived class overrides
@@ -293,8 +293,8 @@ protected:
/* Software information */
std::string m_full_software_name;
- software_info *m_software_info_ptr;
- software_part *m_software_part_ptr;
+ const software_info *m_software_info_ptr;
+ const software_part *m_software_part_ptr;
std::string m_software_list_name;
/* info read from the hash file/software list */
diff --git a/src/emu/romload.cpp b/src/emu/romload.cpp
index 5d832fd2022..deb3ad6d8aa 100644
--- a/src/emu/romload.cpp
+++ b/src/emu/romload.cpp
@@ -1275,7 +1275,7 @@ void rom_load_manager::load_software_part_region(device_t &device, software_list
m_romstotalsize = 0;
m_romsloadedsize = 0;
- software_info *swinfo = swlist.find(swname);
+ const software_info *swinfo = swlist.find(swname);
if (swinfo != nullptr)
{
UINT32 supported = swinfo->supported();
diff --git a/src/emu/softlist.cpp b/src/emu/softlist.cpp
index 381d32fd4c4..b4dba456a4a 100644
--- a/src/emu/softlist.cpp
+++ b/src/emu/softlist.cpp
@@ -269,7 +269,7 @@ software_info::software_info(software_list_device &list, const char *name, const
// optional interface match
//-------------------------------------------------
-software_part *software_info::find_part(const char *partname, const char *interface)
+const software_part *software_info::find_part(const char *partname, const char *interface) const
{
// if neither partname nor interface supplied, then we just return the first entry
if (partname != nullptr && strlen(partname)==0) partname = nullptr;
@@ -278,7 +278,7 @@ software_part *software_info::find_part(const char *partname, const char *interf
return m_partdata.first();
// look for the part by name and match against the interface if provided
- for (software_part &part : m_partdata)
+ for (const software_part &part : m_partdata)
if (partname != nullptr && strcmp(partname, part.name()) == 0)
{
if (interface == nullptr || part.matches_interface(interface))
@@ -369,7 +369,7 @@ void software_list_device::device_start()
// and optional interface
//-------------------------------------------------
-void software_list_device::find_approx_matches(const char *name, int matches, software_info **list, const char *interface)
+void software_list_device::find_approx_matches(const char *name, int matches, const software_info **list, const char *interface)
{
// if no name, return
if (name == nullptr || name[0] == 0)
@@ -384,9 +384,9 @@ void software_list_device::find_approx_matches(const char *name, int matches, so
}
// iterate over our info (will cause a parse if needed)
- for (software_info &swinfo : get_info())
+ for (const software_info &swinfo : get_info())
{
- software_part *part = swinfo.first_part();
+ const software_part *part = swinfo.first_part();
if ((interface == nullptr || part->matches_interface(interface)) && part->is_compatible(*this) == SOFTWARE_IS_COMPATIBLE)
{
// pick the best match between driver name and description
@@ -463,7 +463,7 @@ void software_list_device::display_matches(const machine_config &config, const c
for (software_list_device &swlistdev : deviter)
{
// get the top 16 approximate matches for the selected device interface (i.e. only carts for cartslot, etc.)
- software_info *matches[16] = { nullptr };
+ const software_info *matches[16] = { nullptr };
swlistdev.find_approx_matches(name, ARRAY_LENGTH(matches), matches, interface);
// if we found some, print them
@@ -492,7 +492,7 @@ void software_list_device::display_matches(const machine_config &config, const c
// from an intermediate point
//-------------------------------------------------
-software_info *software_list_device::find(const char *look_for, software_info *prev)
+const software_info *software_list_device::find(const char *look_for, const software_info *prev)
{
// nullptr search returns nothing
if (look_for == nullptr)
@@ -636,7 +636,7 @@ void software_list_device::internal_validity_check(validity_checker &valid)
}
// make sure the parent exists
- software_info *swinfo2 = find(swinfo.parentname());
+ const software_info *swinfo2 = find(swinfo.parentname());
if (swinfo2 == nullptr)
osd_printf_error("%s: parent '%s' software for '%s' not found\n", filename(), swinfo.parentname(), swinfo.shortname());
diff --git a/src/emu/softlist.h b/src/emu/softlist.h
index 536ec9d4754..c5082e16903 100644
--- a/src/emu/softlist.h
+++ b/src/emu/softlist.h
@@ -118,7 +118,7 @@ public:
const char *name() const { return m_name; }
const char *interface() const { return m_interface; }
const simple_list<feature_list_item> &featurelist() const { return m_featurelist; }
- rom_entry *romdata(unsigned int index = 0) { return (index < m_romdata.size()) ? &m_romdata[index] : nullptr; }
+ const rom_entry *romdata(unsigned int index = 0) const { return (index < m_romdata.size()) ? &m_romdata[index] : nullptr; }
// helpers
software_compatibility is_compatible(const software_list_device &swlist) const;
@@ -161,10 +161,10 @@ public:
const simple_list<feature_list_item> &shared_info() const { return m_shared_info; }
UINT32 supported() const { return m_supported; }
const simple_list<software_part> &parts() const { return m_partdata; }
- software_part *first_part() const { return m_partdata.first(); }
+ const software_part *first_part() const { return m_partdata.first(); }
// additional operations
- software_part *find_part(const char *partname, const char *interface = nullptr);
+ const software_part *find_part(const char *partname, const char *interface = nullptr) const;
bool has_multiple_parts(const char *interface) const;
private:
@@ -212,8 +212,8 @@ public:
const simple_list<software_info> &get_info() { if (!m_parsed) parse(); return m_infolist; }
// operations
- software_info *find(const char *look_for, software_info *prev = nullptr);
- void find_approx_matches(const char *name, int matches, software_info **list, const char *interface);
+ const software_info *find(const char *look_for, const software_info *prev = nullptr);
+ void find_approx_matches(const char *name, int matches, const software_info **list, const char *interface);
void release();
// string pool helpers
diff --git a/src/frontend/mame/audit.cpp b/src/frontend/mame/audit.cpp
index 4900d98b53f..fb1199812e7 100644
--- a/src/frontend/mame/audit.cpp
+++ b/src/frontend/mame/audit.cpp
@@ -149,7 +149,7 @@ media_auditor::summary media_auditor::audit_device(device_t &device, const char
//-------------------------------------------------
// audit_software
//-------------------------------------------------
-media_auditor::summary media_auditor::audit_software(const char *list_name, software_info *swinfo, const char *validation)
+media_auditor::summary media_auditor::audit_software(const char *list_name, const software_info *swinfo, const char *validation)
{
// start fresh
m_record_list.clear();
diff --git a/src/frontend/mame/audit.h b/src/frontend/mame/audit.h
index 5252a11be76..a9e3933083c 100644
--- a/src/frontend/mame/audit.h
+++ b/src/frontend/mame/audit.h
@@ -158,7 +158,7 @@ public:
// audit operations
summary audit_media(const char *validation = AUDIT_VALIDATE_FULL);
summary audit_device(device_t &device, const char *validation = AUDIT_VALIDATE_FULL);
- summary audit_software(const char *list_name, software_info *swinfo, const char *validation = AUDIT_VALIDATE_FULL);
+ summary audit_software(const char *list_name, const software_info *swinfo, const char *validation = AUDIT_VALIDATE_FULL);
summary audit_samples();
summary summarize(const char *name, std::ostream *output = nullptr) const;
diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp
index 384d52b0e6f..059748b2cfc 100644
--- a/src/frontend/mame/clifront.cpp
+++ b/src/frontend/mame/clifront.cpp
@@ -520,7 +520,7 @@ int cli_frontend::execute(int argc, char **argv)
bool compatible = false;
for (software_list_device &swlistdev : iter)
{
- software_info *swinfo = swlistdev.find(m_options.software_name());
+ const software_info *swinfo = swlistdev.find(m_options.software_name());
if (swinfo != nullptr)
{
// loop through all parts
diff --git a/src/frontend/mame/mameopts.cpp b/src/frontend/mame/mameopts.cpp
index f8a809efd9d..c64b8fd7ebc 100644
--- a/src/frontend/mame/mameopts.cpp
+++ b/src/frontend/mame/mameopts.cpp
@@ -376,8 +376,8 @@ void mame_options::set_system_name(emu_options &options, const char *name)
// look up the software part
machine_config config(*cursystem, options);
software_list_device *swlist = software_list_device::find_by_name(config, sw_list.c_str());
- software_info *swinfo = swlist != nullptr ? swlist->find(sw_name.c_str()) : nullptr;
- software_part *swpart = swinfo != nullptr ? swinfo->find_part(sw_part.c_str()) : nullptr;
+ const software_info *swinfo = swlist != nullptr ? swlist->find(sw_name.c_str()) : nullptr;
+ const software_part *swpart = swinfo != nullptr ? swinfo->find_part(sw_part.c_str()) : nullptr;
// then add the options
if (new_system)
diff --git a/src/frontend/mame/ui/selgame.cpp b/src/frontend/mame/ui/selgame.cpp
index 08ce99bc61d..6bb2cf9d1f9 100644
--- a/src/frontend/mame/ui/selgame.cpp
+++ b/src/frontend/mame/ui/selgame.cpp
@@ -915,7 +915,7 @@ void menu_select_game::inkey_select_favorite(const event *menu_event)
media_auditor auditor(drv);
drv.next();
software_list_device *swlist = software_list_device::find_by_name(drv.config(), ui_swinfo->listname.c_str());
- software_info *swinfo = swlist->find(ui_swinfo->shortname.c_str());
+ const software_info *swinfo = swlist->find(ui_swinfo->shortname.c_str());
media_auditor::summary summary = auditor.audit_software(swlist->list_name(), swinfo, AUDIT_VALIDATE_FAST);
diff --git a/src/frontend/mame/ui/selsoft.cpp b/src/frontend/mame/ui/selsoft.cpp
index 8839666d838..1b6468579ab 100644
--- a/src/frontend/mame/ui/selsoft.cpp
+++ b/src/frontend/mame/ui/selsoft.cpp
@@ -525,9 +525,9 @@ void menu_select_software::build_software_list()
{
m_filter.swlist.name.push_back(swlist.list_name());
m_filter.swlist.description.push_back(swlist.description());
- for (software_info &swinfo : swlist.get_info())
+ for (const software_info &swinfo : swlist.get_info())
{
- software_part *part = swinfo.first_part();
+ const software_part *part = swinfo.first_part();
if (part->is_compatible(swlist) == SOFTWARE_IS_COMPATIBLE)
{
const char *instance_name = nullptr;
@@ -687,7 +687,7 @@ void menu_select_software::inkey_select(const event *menu_event)
media_auditor auditor(drivlist);
drivlist.next();
software_list_device *swlist = software_list_device::find_by_name(drivlist.config(), ui_swinfo->listname.c_str());
- software_info *swinfo = swlist->find(ui_swinfo->shortname.c_str());
+ const software_info *swinfo = swlist->find(ui_swinfo->shortname.c_str());
media_auditor::summary summary = auditor.audit_software(swlist->list_name(), swinfo, AUDIT_VALIDATE_FAST);
@@ -1572,7 +1572,7 @@ void bios_selection::handle()
driver_enumerator drivlist(machine().options(), *ui_swinfo->driver);
drivlist.next();
software_list_device *swlist = software_list_device::find_by_name(drivlist.config(), ui_swinfo->listname.c_str());
- software_info *swinfo = swlist->find(ui_swinfo->shortname.c_str());
+ const software_info *swinfo = swlist->find(ui_swinfo->shortname.c_str());
if (!ui().options().skip_parts_menu() && swinfo->has_multiple_parts(ui_swinfo->interface.c_str()))
{
s_parts parts;