summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2021-01-24 14:48:06 -0500
committer AJR <ajrhacker@users.noreply.github.com>2021-01-24 14:59:52 -0500
commit171483bbd5339b1e08bf1e505fdd75b203c25179 (patch)
tree382392704c838568c35c4ca29da0c2e321509e94
parent295fb9b4021c19f45c4a11499b39ce02583c758b (diff)
input.cpp, inputdev.cpp: Misc. fixes
- Fix a recent regression with processing XInput DPAD input item tokens - Prevent code_to_token from blowing up in strange cases
-rw-r--r--src/emu/input.cpp4
-rw-r--r--src/emu/inputdev.cpp3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/emu/input.cpp b/src/emu/input.cpp
index 0cc37abc1c9..f767254fb7b 100644
--- a/src/emu/input.cpp
+++ b/src/emu/input.cpp
@@ -832,6 +832,8 @@ std::string input_manager::code_to_token(input_code code) const
{
// determine the devclass part
const char *devclass = (*devclass_token_table)[code.device_class()];
+ if (devclass == nullptr)
+ return "INVALID";
// determine the devindex part; keyboard 0 doesn't show an index
std::string devindex = string_format("%d", code.device_index() + 1);
@@ -858,7 +860,7 @@ std::string input_manager::code_to_token(input_code code) const
str.append("_").append(devcode);
if (modifier != nullptr)
str.append("_").append(modifier);
- if (itemclass[0] != 0)
+ if (itemclass != nullptr && itemclass[0] != 0)
str.append("_").append(itemclass);
return str;
}
diff --git a/src/emu/inputdev.cpp b/src/emu/inputdev.cpp
index 3ca876ff0d8..783bccf3a31 100644
--- a/src/emu/inputdev.cpp
+++ b/src/emu/inputdev.cpp
@@ -684,8 +684,7 @@ input_device_item::input_device_item(input_device &device, const char *name, voi
else
{
// otherwise, create a tokenized name
- m_token.assign(name);
- strmakeupper(m_token);
+ m_token.assign(strmakeupper(name));
strdelchr(m_token, ' ');
strdelchr(m_token, '_');
}