summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/diexec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/diexec.cpp')
-rw-r--r--src/emu/diexec.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/emu/diexec.cpp b/src/emu/diexec.cpp
index f04854ee090..842f52b10ab 100644
--- a/src/emu/diexec.cpp
+++ b/src/emu/diexec.cpp
@@ -410,9 +410,13 @@ void device_execute_interface::interface_post_start()
device().save_item(NAME(m_totalcycles));
device().save_item(NAME(m_localtime));
+ // it's more efficient and causes less clutter to save these this way
+ device().save_item(STRUCT_MEMBER(m_input, m_stored_vector));
+ device().save_item(STRUCT_MEMBER(m_input, m_curvector));
+
// fill in the input states and IRQ callback information
for (int line = 0; line < ARRAY_LENGTH(m_input); line++)
- m_input[line].start(this, line);
+ m_input[line].start(*this, line);
}
@@ -668,17 +672,12 @@ device_execute_interface::device_input::device_input()
// can set ourselves up
//-------------------------------------------------
-void device_execute_interface::device_input::start(device_execute_interface *execute, int linenum)
+void device_execute_interface::device_input::start(device_execute_interface &execute, int linenum)
{
- m_execute = execute;
+ m_execute = &execute;
m_linenum = linenum;
reset();
-
- device_t &device = m_execute->device();
- device.save_item(NAME(m_stored_vector), m_linenum);
- device.save_item(NAME(m_curvector), m_linenum);
- device.save_item(NAME(m_curstate), m_linenum);
}