summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/ccpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/ccpu')
-rw-r--r--src/devices/cpu/ccpu/ccpu.cpp3
-rw-r--r--src/devices/cpu/ccpu/ccpu.h12
2 files changed, 3 insertions, 12 deletions
diff --git a/src/devices/cpu/ccpu/ccpu.cpp b/src/devices/cpu/ccpu/ccpu.cpp
index 740c803ad44..6afb97916b2 100644
--- a/src/devices/cpu/ccpu/ccpu.cpp
+++ b/src/devices/cpu/ccpu/ccpu.cpp
@@ -69,6 +69,7 @@ ccpu_cpu_device::ccpu_cpu_device(const machine_config &mconfig, const char *tag,
, m_data_config("data", ENDIANNESS_BIG, 16, 32, -1)
, m_io_config("io", ENDIANNESS_BIG, 8, 5, 0)
, m_external_input(*this)
+ , m_vector_callback(*this)
, m_flags(0)
{
}
@@ -103,7 +104,7 @@ void ccpu_cpu_device::device_start()
{
/* copy input params */
m_external_input.resolve_safe(0);
- m_vector_callback.bind_relative_to(*owner());
+ m_vector_callback.resolve();
assert(!m_vector_callback.isnull());
m_program = &space(AS_PROGRAM);
diff --git a/src/devices/cpu/ccpu/ccpu.h b/src/devices/cpu/ccpu/ccpu.h
index c42687aaa0c..359bac3e4ce 100644
--- a/src/devices/cpu/ccpu/ccpu.h
+++ b/src/devices/cpu/ccpu/ccpu.h
@@ -47,17 +47,7 @@ public:
// configuration helpers
auto external_func() { return m_external_input.bind(); }
- template <typename Object> void set_vector_func(Object &&cb) { m_vector_callback = std::forward<Object>(cb); }
- void set_vector_func(vector_delegate callback) { m_vector_callback = callback; }
- template <class FunctionClass> void set_vector_func(const char *devname,
- void (FunctionClass::*callback)(int16_t, int16_t, int16_t, int16_t, uint8_t), const char *name)
- {
- set_vector_func(vector_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_vector_func(void (FunctionClass::*callback)(int16_t, int16_t, int16_t, int16_t, uint8_t), const char *name)
- {
- set_vector_func(vector_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_vector_func(T &&... args) { m_vector_callback.set(std::forward<T>(args)...); }
DECLARE_READ8_MEMBER( read_jmi );
void wdt_timer_trigger();