From 61d270cf4a97f6fbc08f696bf5ecfcd84018a775 Mon Sep 17 00:00:00 2001 From: tim lindner Date: Sun, 11 Dec 2022 07:02:59 -0800 Subject: [PATCH] bus/coco: Minor cleanup of base cartridge class. (#10647) Moved a member initialization to constructor, use resolve_safe() for callbacks to remove some checks. --- src/devices/bus/coco/cococart.cpp | 14 ++++++-------- src/devices/bus/coco/cococart.h | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/devices/bus/coco/cococart.cpp b/src/devices/bus/coco/cococart.cpp index 619e971d18e..17ef39fe69d 100644 --- a/src/devices/bus/coco/cococart.cpp +++ b/src/devices/bus/coco/cococart.cpp @@ -153,7 +153,7 @@ void cococart_slot_device::device_start() m_cart_line.value = line_value::CLEAR; m_cart_line.line = 0; m_cart_line.q_count = 0; - m_cart_callback.resolve(); + m_cart_callback.resolve_safe(); m_cart_line.callback = &m_cart_callback; m_nmi_line.timer_index = 0; @@ -161,7 +161,7 @@ void cococart_slot_device::device_start() m_nmi_line.value = line_value::CLEAR; m_nmi_line.line = 0; m_nmi_line.q_count = 0; - m_nmi_callback.resolve(); + m_nmi_callback.resolve_safe(); m_nmi_line.callback = &m_nmi_callback; m_halt_line.timer_index = 0; @@ -169,7 +169,7 @@ void cococart_slot_device::device_start() m_halt_line.value = line_value::CLEAR; m_halt_line.line = 0; m_halt_line.q_count = 0; - m_halt_callback.resolve(); + m_halt_callback.resolve_safe(); m_halt_line.callback = &m_halt_callback; m_cart = get_card_device(); @@ -346,9 +346,8 @@ void cococart_slot_device::set_line(line ln, coco_cartridge_line &line, cococart break; } - /* invoke the callback, if present */ - if (!(*line.callback).isnull()) - (*line.callback)(line.line); + /* invoke the callback */ + (*line.callback)(line.line); } } @@ -657,7 +656,7 @@ template class device_finder; device_cococart_interface::device_cococart_interface(const machine_config &mconfig, device_t &device) : device_interface(device, "cococart") - , m_owning_slot(nullptr) + , m_owning_slot(dynamic_cast(device.owner())) , m_host(nullptr) { } @@ -678,7 +677,6 @@ device_cococart_interface::~device_cococart_interface() void device_cococart_interface::interface_config_complete() { - m_owning_slot = dynamic_cast(device().owner()); m_host = m_owning_slot ? dynamic_cast(m_owning_slot->owner()) : nullptr; diff --git a/src/devices/bus/coco/cococart.h b/src/devices/bus/coco/cococart.h index b686ac0748d..0335d03475f 100644 --- a/src/devices/bus/coco/cococart.h +++ b/src/devices/bus/coco/cococart.h @@ -221,7 +221,7 @@ protected: private: cococart_base_update_delegate m_update; - cococart_slot_device * m_owning_slot; + cococart_slot_device * const m_owning_slot; device_cococart_host_interface * m_host; };