From 3bc0aad093d7eb5bc06fc2aa6396f84069dd1b25 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 10 Nov 2019 23:10:39 -0500 Subject: [PATCH] Eliminate a few more uses of auto_alloc (nw) --- src/mame/audio/dcs.cpp | 17 +++++++++-------- src/mame/audio/dcs.h | 3 ++- src/mame/drivers/wheelfir.cpp | 4 ++-- src/mame/includes/cischeat.h | 1 + src/mame/includes/irobot.h | 2 +- src/mame/machine/irobot.cpp | 2 +- src/mame/video/3dom2_te.cpp | 4 ++-- src/mame/video/3dom2_te.h | 6 +++--- src/mame/video/antic.cpp | 5 ++--- src/mame/video/antic.h | 2 +- src/mame/video/cischeat.cpp | 3 ++- src/mame/video/crt.cpp | 2 +- src/mame/video/crt.h | 2 +- 13 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/mame/audio/dcs.cpp b/src/mame/audio/dcs.cpp index cd4b208c29c..52202db87fc 100644 --- a/src/mame/audio/dcs.cpp +++ b/src/mame/audio/dcs.cpp @@ -860,7 +860,8 @@ void dcs2_audio_device::device_start() if (m_dram_in_mb != 0) { m_sounddata_words = (m_dram_in_mb << 20) / 2; - m_sounddata = auto_alloc_array(machine(), uint16_t, m_sounddata_words); + m_sounddata_ptr = std::make_unique(m_sounddata_words); + m_sounddata = m_sounddata_ptr.get(); save_pointer(NAME(m_sounddata), m_sounddata_words); } else @@ -879,7 +880,7 @@ void dcs2_audio_device::device_start() /* allocate memory for the SRAM */ - m_sram = auto_alloc_array(machine(), uint16_t, 0x8000*4/2); + m_sram = std::make_unique(0x8000*4/2); /* create the timers */ m_internal_timer = subdevice("dcs_int_timer"); @@ -1022,23 +1023,23 @@ void dcs_audio_device::sdrc_remap_memory() else { /* first start with a clean program map */ - m_program->install_ram(0x0800, 0x3fff, m_sram + 0x4800); + m_program->install_ram(0x0800, 0x3fff, &m_sram[0x4800]); /* set up the data map based on the SRAM banking */ /* map 0: ram from 0800-37ff */ if (SDRC_SM_BK == 0) { - m_data->install_ram(0x0800, 0x17ff, m_sram + 0x0000); - m_data->install_ram(0x1800, 0x27ff, m_sram + 0x1000); - m_data->install_ram(0x2800, 0x37ff, m_sram + 0x2000); + m_data->install_ram(0x0800, 0x17ff, &m_sram[0x0000]); + m_data->install_ram(0x1800, 0x27ff, &m_sram[0x1000]); + m_data->install_ram(0x2800, 0x37ff, &m_sram[0x2000]); } /* map 1: nothing from 0800-17ff, alternate RAM at 1800-27ff, same RAM at 2800-37ff */ else { m_data->unmap_readwrite(0x0800, 0x17ff); - m_data->install_ram(0x1800, 0x27ff, m_sram + 0x3000); - m_data->install_ram(0x2800, 0x37ff, m_sram + 0x2000); + m_data->install_ram(0x1800, 0x27ff, &m_sram[0x3000]); + m_data->install_ram(0x2800, 0x37ff, &m_sram[0x2000]); } } diff --git a/src/mame/audio/dcs.h b/src/mame/audio/dcs.h index 717416ce0fc..c2a58f44580 100644 --- a/src/mame/audio/dcs.h +++ b/src/mame/audio/dcs.h @@ -192,6 +192,7 @@ protected: uint16_t * m_bootrom; uint32_t m_bootrom_words; uint16_t * m_sounddata; + std::unique_ptr m_sounddata_ptr; uint32_t m_sounddata_words; uint32_t m_sounddata_banks; uint16_t m_sounddata_bank; @@ -229,7 +230,7 @@ protected: uint32_t m_timer_period; uint32_t m_timers_fired; - uint16_t *m_sram; + std::unique_ptr(m_sram); uint16_t m_polling_value; uint32_t m_polling32_value; uint32_t *m_internal_program_ram; diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp index 560c0a889f1..aaafc6179fa 100644 --- a/src/mame/drivers/wheelfir.cpp +++ b/src/mame/drivers/wheelfir.cpp @@ -223,7 +223,7 @@ private: std::unique_ptr m_zoom_table; std::unique_ptr m_blitter_data; - scroll_info *m_scanlines; + std::unique_ptr m_scanlines; int32_t m_direct_write_x0; int32_t m_direct_write_x1; @@ -700,7 +700,7 @@ void wheelfir_state::machine_start() m_zoom_table = std::make_unique(ZOOM_TABLE_SIZE); m_blitter_data = std::make_unique(16); - m_scanlines = reinterpret_cast(auto_alloc_array(machine(), uint8_t, sizeof(scroll_info)*(NUM_SCANLINES+NUM_VBLANK_LINES))); + m_scanlines = std::make_unique(NUM_SCANLINES+NUM_VBLANK_LINES); for(int i=0;i<(ZOOM_TABLE_SIZE);++i) diff --git a/src/mame/includes/cischeat.h b/src/mame/includes/cischeat.h index 3380f8c57f1..0cad6346e6f 100644 --- a/src/mame/includes/cischeat.h +++ b/src/mame/includes/cischeat.h @@ -171,6 +171,7 @@ public: {} uint16_t *m_buffer_spriteram; + std::unique_ptr m_allocated_spriteram; void wildplt_map(address_map &map); void wildplt(machine_config &config); DECLARE_WRITE16_MEMBER(sprite_dma_w); diff --git a/src/mame/includes/irobot.h b/src/mame/includes/irobot.h index 8b1780254ad..37e68472445 100644 --- a/src/mame/includes/irobot.h +++ b/src/mame/includes/irobot.h @@ -102,7 +102,7 @@ private: uint8_t m_outx; uint8_t m_mpage; uint8_t *m_combase_mb; - irmb_ops *m_mbops; + std::unique_ptr m_mbops; const irmb_ops *m_irmb_stack[16]; uint32_t m_irmb_regs[16]; uint32_t m_irmb_latch; diff --git a/src/mame/machine/irobot.cpp b/src/mame/machine/irobot.cpp index 755f29e8312..a56f073ede2 100644 --- a/src/mame/machine/irobot.cpp +++ b/src/mame/machine/irobot.cpp @@ -319,7 +319,7 @@ void irobot_state::load_oproms() int i; /* allocate RAM */ - m_mbops = auto_alloc_array(machine(), irmb_ops, 1024); + m_mbops = std::make_unique(1024); for (i = 0; i < 1024; i++) { diff --git a/src/mame/video/3dom2_te.cpp b/src/mame/video/3dom2_te.cpp index a75062e144d..2f3b33cbd2f 100644 --- a/src/mame/video/3dom2_te.cpp +++ b/src/mame/video/3dom2_te.cpp @@ -720,10 +720,10 @@ void m2_te_device::device_start() m_winclip_int_handler.resolve_safe(); // Allocate texture RAM - m_tram = auto_alloc_array(machine(), uint32_t, TEXTURE_RAM_WORDS); + m_tram = std::make_unique(TEXTURE_RAM_WORDS); // Allocate PIP RAM - m_pipram = auto_alloc_array(machine(), uint32_t, PIP_RAM_WORDS); + m_pipram = std::make_unique(PIP_RAM_WORDS); // TODO memset(&m_gc, 0, sizeof(m_gc)); diff --git a/src/mame/video/3dom2_te.h b/src/mame/video/3dom2_te.h index 43012513b91..bf318dfe9af 100644 --- a/src/mame/video/3dom2_te.h +++ b/src/mame/video/3dom2_te.h @@ -35,7 +35,7 @@ public: DECLARE_READ32_MEMBER(read); DECLARE_WRITE32_MEMBER(write); - uint32_t *tram_ptr() const { return m_tram; } + uint32_t *tram_ptr() const { return &m_tram[0]; } enum te_reg_wmode { @@ -408,8 +408,8 @@ private: te_state m_state; - uint32_t *m_pipram; - uint32_t *m_tram; + std::unique_ptr m_pipram; + std::unique_ptr m_tram; }; DECLARE_DEVICE_TYPE(M2_TE, m2_te_device) diff --git a/src/mame/video/antic.cpp b/src/mame/video/antic.cpp index 3d6f569c154..8185e482ac7 100644 --- a/src/mame/video/antic.cpp +++ b/src/mame/video/antic.cpp @@ -377,8 +377,7 @@ void antic_device::device_start() LOG("atari prio_init\n"); prio_init(); - for (int i = 0; i < screen().height(); i++) - m_video[i] = auto_alloc_clear(machine(),