From 8d25f46228ba04e0be0d2636b16e3e4462fd143f Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 9 Feb 2021 11:04:39 -0500 Subject: [PATCH] mc14411: Fix potential crashes caused by calling rate select handlers before device timers are instantiated --- src/devices/machine/mc14411.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/devices/machine/mc14411.cpp b/src/devices/machine/mc14411.cpp index 64bf476e2c4..fb24372e7bd 100644 --- a/src/devices/machine/mc14411.cpp +++ b/src/devices/machine/mc14411.cpp @@ -251,7 +251,8 @@ void mc14411_device::rate_select_w(uint8_t data) if (m_divider != (data & 3)) { m_divider = data & 3; - notify_clock_changed(); + if (started()) + notify_clock_changed(); } } @@ -267,7 +268,8 @@ void mc14411_device::rsa_w(int state) if ((m_divider & RSA) != (state == ASSERT_LINE ? RSA : 0)) { m_divider = (m_divider & ~RSA) | (state == ASSERT_LINE ? RSA : 0); - notify_clock_changed(); + if (started()) + notify_clock_changed(); } } @@ -283,7 +285,8 @@ void mc14411_device::rsb_w(int state) if ((m_divider & RSB) != (state == ASSERT_LINE ? RSB : 0)) { m_divider = (m_divider & ~RSB) | (state == ASSERT_LINE ? RSB : 0); - notify_clock_changed(); + if (started()) + notify_clock_changed(); } }