summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2019-09-11 14:16:28 -0400
committer GitHub <noreply@github.com>2019-09-11 14:16:28 -0400
commitae625179c4bbb7c131c93c0edda5a77006f30ab4 (patch)
treec8886d71291605bd5b5132eb6c04cc1d7ac29176 /src/emu
parentbc15184c90a7eaf4cf16ea060916346e390a7c3b (diff)
parent35e5616ca83c94686307bf30c8e16c87a3e0fdb7 (diff)
Merge pull request #5614 from npwoods/natkeyboard_std_array
Changing some arrays to use std::array<> in natkeyboard
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/natkeyboard.cpp11
-rw-r--r--src/emu/natkeyboard.h4
2 files changed, 6 insertions, 9 deletions
diff --git a/src/emu/natkeyboard.cpp b/src/emu/natkeyboard.cpp
index c3c05f0e9fb..7d154787c0c 100644
--- a/src/emu/natkeyboard.cpp
+++ b/src/emu/natkeyboard.cpp
@@ -602,7 +602,7 @@ void natural_keyboard::build_codes(ioport_manager &manager)
{
// find all shift keys
unsigned mask = 0;
- ioport_field *shift[SHIFT_COUNT];
+ std::array<ioport_field *, SHIFT_COUNT> shift;
std::fill(std::begin(shift), std::end(shift), nullptr);
for (auto const &port : manager.ports())
{
@@ -656,7 +656,6 @@ void natural_keyboard::build_codes(ioport_manager &manager)
newcode.field[fieldnum++] = shift[i];
}
- assert(fieldnum < ARRAY_LENGTH(newcode.field));
newcode.field[fieldnum] = &field;
if (m_keycode_map.end() == found)
m_keycode_map.emplace(code, newcode);
@@ -795,8 +794,6 @@ void natural_keyboard::timer(void *ptr, int param)
{
do
{
- assert(m_fieldnum < ARRAY_LENGTH(code->field));
-
ioport_field *const field = code->field[m_fieldnum];
if (field)
{
@@ -807,8 +804,8 @@ void natural_keyboard::timer(void *ptr, int param)
field->set_value(!field->digital_value());
}
}
- while (code->field[m_fieldnum] && (++m_fieldnum < ARRAY_LENGTH(code->field)) && m_status_keydown);
- advance = (m_fieldnum >= ARRAY_LENGTH(code->field)) || !code->field[m_fieldnum];
+ while (code->field[m_fieldnum] && (++m_fieldnum < code->field.size()) && m_status_keydown);
+ advance = (m_fieldnum >= code->field.size()) || !code->field[m_fieldnum];
}
else
{
@@ -902,7 +899,7 @@ void natural_keyboard::dump(std::ostream &str) const
util::stream_format(str, "%-*s", left_column_width, description);
// identify the keys used
- for (std::size_t field = 0; (ARRAY_LENGTH(code.second.field) > field) && code.second.field[field]; ++field)
+ for (std::size_t field = 0; (code.second.field.size() > field) && code.second.field[field]; ++field)
util::stream_format(str, "%s'%s'", first ? "" : ", ", code.second.field[field]->name());
// carriage return
diff --git a/src/emu/natkeyboard.h b/src/emu/natkeyboard.h
index fa3df156285..d8cc9cfb8ff 100644
--- a/src/emu/natkeyboard.h
+++ b/src/emu/natkeyboard.h
@@ -72,8 +72,8 @@ private:
// internal keyboard code information
struct keycode_map_entry
{
- ioport_field * field[SHIFT_COUNT + 1];
- unsigned shift;
+ std::array<ioport_field *, SHIFT_COUNT + 1> field;
+ unsigned shift;
};
typedef std::unordered_map<char32_t, keycode_map_entry> keycode_map;