diff options
| author | 2017-04-21 14:33:35 -0400 | |
|---|---|---|
| committer | 2017-04-21 14:52:45 -0400 | |
| commit | a0bf95bc4d34a8982a2129864ae457bede15cca1 (patch) | |
| tree | 94e8e447546951887e85f1e1516eaee79389eaff /src/emu/device.cpp | |
| parent | 9f121349908400b7412e353712147b45ee64dd67 (diff) | |
Defend clocks_to_attotime and attotime_to_clocks against the possibility of the device clock being 0 (nw)
Diffstat (limited to 'src/emu/device.cpp')
| -rw-r--r-- | src/emu/device.cpp | 9 |
1 files 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); } |
