From 2d805167c79176e2dbd0278fe4f2ca2c83bad0e3 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 8 Mar 2016 10:42:44 +0100 Subject: use lambdas instead of wrappers (nw) --- src/emu/ioport.h | 36 ++---------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/src/emu/ioport.h b/src/emu/ioport.h index bd3e04e5f7f..382ca99f823 100644 --- a/src/emu/ioport.h +++ b/src/emu/ioport.h @@ -1735,11 +1735,11 @@ ATTR_COLD void INPUT_PORTS_NAME(_name)(device_t &owner, ioport_list &portlist, s // input device handler #define PORT_READ_LINE_DEVICE_MEMBER(_device, _class, _member) \ - configurer.field_set_dynamic_read(ioport_field_read_delegate(&ioport_read_line_wrapper<_class, &_class::_member>, #_class "::" #_member, _device, (_class *)NULL)); + configurer.field_set_dynamic_read(ioport_field_read_delegate([](_class &device, ioport_field &field, void *param)->ioport_value { return device._member() ? ~ioport_value(0) : 0; } , #_class "::" #_member, _device, (_class *)NULL)); // output device handler #define PORT_WRITE_LINE_DEVICE_MEMBER(_device, _class, _member) \ - configurer.field_set_dynamic_write(ioport_field_write_delegate(&ioport_write_line_wrapper<_class, &_class::_member>, #_class "::" #_member, _device, (_class *)NULL)); + configurer.field_set_dynamic_write(ioport_field_write_delegate([](_class &device, ioport_field &field, void *param, ioport_value oldval, ioport_value newval) { device._member(newval); }, #_class "::" #_member, _device, (_class *)NULL)); // dip switch definition #define PORT_DIPNAME(_mask, _default, _name) \ @@ -1819,38 +1819,6 @@ ATTR_COLD void INPUT_PORTS_NAME(_name)(device_t &owner, ioport_list &portlist, s #define PORT_HBLANK(_screen) \ PORT_READ_LINE_DEVICE_MEMBER(_screen, screen_device, hblank) - - -//************************************************************************** -// INLINE TEMPLATES -//************************************************************************** - -template -ioport_value ioport_read_line_wrapper(device_t &device, ioport_field &field, void *param) -{ - return ((*_FunctionPointer)(&device) & 1) ? ~ioport_value(0) : 0; -} - -template -ioport_value ioport_read_line_wrapper(_FunctionClass &device, ioport_field &field, void *param) -{ - return ((device.*_FunctionPointer)() & 1) ? ~ioport_value(0) : 0; -} - -template -void ioport_write_line_wrapper(device_t &device, ioport_field &field, void *param, ioport_value oldval, ioport_value newval) -{ - return (*_FunctionPointer)(&device, newval); -} - -template -void ioport_write_line_wrapper(_FunctionClass &device, ioport_field &field, void *param, ioport_value oldval, ioport_value newval) -{ - return (device.*_FunctionPointer)(newval); -} - - - //************************************************************************** // INLINE FUNCTIONS //************************************************************************** -- cgit v1.2.3