From a0bf95bc4d34a8982a2129864ae457bede15cca1 Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 21 Apr 2017 14:33:35 -0400 Subject: [PATCH] Defend clocks_to_attotime and attotime_to_clocks against the possibility of the device clock being 0 (nw) --- src/emu/device.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/emu/device.cpp b/src/emu/device.cpp index 60772fd2369..c585f236e15 100644 --- a/src/emu/device.cpp +++ b/src/emu/device.cpp @@ -360,7 +360,9 @@ void device_t::calculate_derived_clock() attotime device_t::clocks_to_attotime(u64 numclocks) const { - if (numclocks < m_clock) + if (m_clock == 0) + return attotime::never; + else if (numclocks < m_clock) return attotime(0, numclocks * m_attoseconds_per_clock); else { @@ -378,7 +380,10 @@ attotime device_t::clocks_to_attotime(u64 numclocks) const u64 device_t::attotime_to_clocks(const attotime &duration) const { - return mulu_32x32(duration.seconds(), m_clock) + u64(duration.attoseconds()) / u64(m_attoseconds_per_clock); + if (m_clock == 0) + return 0; + else + return mulu_32x32(duration.seconds(), m_clock) + u64(duration.attoseconds()) / u64(m_attoseconds_per_clock); }