global_alloc_array to std::make_unique where applicable (nw)

This commit is contained in:
Miodrag Milanovic 2015-12-19 18:47:54 +01:00
parent 98b121c52d
commit 497c204431
16 changed files with 54 additions and 60 deletions

View File

@ -110,15 +110,15 @@ bool rom_image_device::call_load()
device_image_interface* image = this;
UINT64 size = image->length();
m_base = global_alloc_array(UINT8, 16384);
m_base = std::make_unique<UINT8[]>(16384);
if(size <= 16384)
{
image->fread(m_base,size);
image->fread(m_base.get(),size);
}
else
{
image->fseek(size-16384,SEEK_SET);
image->fread(m_base,16384);
image->fread(m_base.get(),16384);
}
return IMAGE_INIT_PASS;
@ -130,6 +130,5 @@ bool rom_image_device::call_load()
-------------------------------------------------*/
void rom_image_device::call_unload()
{
global_free_array(m_base);
m_base = nullptr;
}

View File

@ -39,7 +39,7 @@ public:
virtual const char *file_extensions() const override { return "rom,bin"; }
virtual const option_guide *create_option_guide() const override { return nullptr; }
UINT8* base() { return m_base; }
UINT8* base() { return m_base.get(); }
protected:
// device-level overrides
@ -47,7 +47,7 @@ protected:
virtual void device_start() override;
private:
UINT8* m_base;
std::unique_ptr<UINT8[]> m_base;
};

View File

@ -41,7 +41,7 @@ snug_enhanced_video_device::snug_enhanced_video_device(const machine_config &mco
void snug_enhanced_video_device::nvram_default()
{
memset(m_novram, 0, NOVRAM_SIZE);
memset(m_novram.get(), 0, NOVRAM_SIZE);
}
//-------------------------------------------------
@ -51,7 +51,7 @@ void snug_enhanced_video_device::nvram_default()
void snug_enhanced_video_device::nvram_read(emu_file &file)
{
file.read(m_novram, NOVRAM_SIZE);
file.read(m_novram.get(), NOVRAM_SIZE);
}
//-------------------------------------------------
@ -61,7 +61,7 @@ void snug_enhanced_video_device::nvram_read(emu_file &file)
void snug_enhanced_video_device::nvram_write(emu_file &file)
{
file.write(m_novram, NOVRAM_SIZE);
file.write(m_novram.get(), NOVRAM_SIZE);
}
@ -312,7 +312,7 @@ WRITE8_MEMBER(snug_enhanced_video_device::cruwrite)
void snug_enhanced_video_device::device_start()
{
m_dsrrom = memregion(DSRROM)->base();
m_novram = global_alloc_array(UINT8, NOVRAM_SIZE);
m_novram = std::make_unique<UINT8[]>(NOVRAM_SIZE);
}
void snug_enhanced_video_device::device_reset()
@ -327,7 +327,7 @@ void snug_enhanced_video_device::device_reset()
void snug_enhanced_video_device::device_stop()
{
global_free_array(m_novram);
m_novram = nullptr;
}
ROM_START( ti99_evpc )

View File

@ -55,7 +55,7 @@ private:
UINT8* m_dsrrom;
bool m_RAMEN;
int m_dsr_page;
UINT8* m_novram; /* NOVRAM area */
std::unique_ptr<UINT8[]> m_novram; /* NOVRAM area */
evpc_palette m_palette;
};

View File

@ -613,8 +613,8 @@ void snug_high_speed_gpl_device::grom_write(address_space& space, offs_t offset,
void snug_high_speed_gpl_device::device_start()
{
m_ram6_memory = global_alloc_array(UINT8, RAMSIZE);
m_gram_memory = global_alloc_array(UINT8, GRAMSIZE);
m_ram6_memory = std::make_unique<UINT8[]>(RAMSIZE);
m_gram_memory = std::make_unique<UINT8[]>(GRAMSIZE);
}
void snug_high_speed_gpl_device::device_reset()
@ -651,8 +651,8 @@ void snug_high_speed_gpl_device::device_config_complete(void)
void snug_high_speed_gpl_device::device_stop()
{
global_free_array(m_ram6_memory);
global_free_array(m_gram_memory);
m_ram6_memory = nullptr;
m_gram_memory = nullptr;
}
// Flash setting is used to flash an empty HSGPL DSR ROM

View File

@ -47,8 +47,8 @@ private:
at29c040a_device* m_grom_a_eeprom;
at29c040a_device* m_grom_b_eeprom;
UINT8* m_ram6_memory;
UINT8* m_gram_memory;
std::unique_ptr<UINT8[]> m_ram6_memory;
std::unique_ptr<UINT8[]> m_gram_memory;
void dsrspace_readz(address_space& space, offs_t offset, UINT8* value, UINT8 mem_mask);
void cartspace_readz(address_space& space, offs_t offset, UINT8* value, UINT8 mem_mask);

View File

@ -705,7 +705,7 @@ void ti_rs232_pio_device::receive_data_or_line_state(int uartind)
if (m_bufpos[uartind] == m_buflen[uartind])
{
// Get all out of sdlsocket
m_buflen[uartind] = serial->fread(m_recvbuf[uartind], 512);
m_buflen[uartind] = serial->fread(m_recvbuf[uartind].get(), 512);
m_bufpos[uartind] = 0;
if (m_buflen[uartind]==0) return;
}
@ -1023,8 +1023,8 @@ void ti_rs232_pio_device::device_start()
m_serdev[1] = subdevice<ti_rs232_attached_device>("serdev1");
m_piodev = subdevice<ti_pio_attached_device>("piodev");
// Prepare the receive buffers
m_recvbuf[0] = global_alloc_array(UINT8, 512);
m_recvbuf[1] = global_alloc_array(UINT8, 512);
m_recvbuf[0] = std::make_unique<UINT8[]>(512);
m_recvbuf[1] = std::make_unique<UINT8[]>(512);
m_pio_write = true; // required for call_load of pio_attached_device
m_pio_writable = false;
m_pio_handshakein = false;
@ -1032,8 +1032,8 @@ void ti_rs232_pio_device::device_start()
void ti_rs232_pio_device::device_stop()
{
if (m_recvbuf[0] != nullptr) global_free_array(m_recvbuf[0]);
if (m_recvbuf[1] != nullptr) global_free_array(m_recvbuf[1]);
m_recvbuf[0] = nullptr;
m_recvbuf[1] = nullptr;
}
void ti_rs232_pio_device::device_reset()

View File

@ -80,7 +80,7 @@ private:
// Input buffer for each UART. We have to copy the contents of sdlsocket here
// because the buffer in corefile will be lost on the next write operation
UINT8* m_recvbuf[2];
std::unique_ptr<UINT8[]> m_recvbuf[2];
int m_bufpos[2], m_buflen[2];
// Latches the state of the output lines for UART0/UART1

View File

@ -393,7 +393,7 @@ void ti99_datamux_device::device_start(void)
void ti99_datamux_device::device_stop(void)
{
if (m_ram16b) global_free_array(m_ram16b);
m_ram16b = nullptr;
}
void ti99_datamux_device::device_reset(void)
@ -411,7 +411,7 @@ void ti99_datamux_device::device_reset(void)
// better use a region?
if (m_ram16b==nullptr)
{
m_ram16b = global_alloc_array_clear(UINT16, 32768/2);
m_ram16b = make_unique_clear<UINT16[]>(32768/2);
}
// Now building the list of active devices at this databus multiplex.

View File

@ -134,7 +134,7 @@ private:
int m_waitcount;
/* Memory expansion (internal, 16 bit). */
UINT16 *m_ram16b;
std::unique_ptr<UINT16[]> m_ram16b;
/* Use the memory expansion? */
bool m_use32k;

View File

@ -78,10 +78,6 @@
PRIVATE GLOBAL VARIABLES
***************************************************************************/
static UINT32 table_refcount = 0;
static UINT16 * mirror_table;
static UINT8 * condition_table;
const UINT32 jaguar_cpu_device::convert_zero[32] =
{ 32,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 };
@ -150,6 +146,7 @@ jaguar_cpu_device::jaguar_cpu_device(const machine_config &mconfig, device_type
, m_isdsp(isdsp)
, m_cpu_interrupt(*this)
, m_tables_referenced(false)
, table_refcount(0)
, m_table(isdsp ? dsp_op_table : gpu_op_table)
{
if (isdsp)
@ -291,7 +288,7 @@ void jaguar_cpu_device::init_tables()
}
/* fill in the mirror table */
mirror_table = global_alloc_array(UINT16, 65536);
mirror_table = std::make_unique<UINT16[]>(65536);
for (i = 0; i < 65536; i++)
mirror_table[i] = ((i >> 15) & 0x0001) | ((i >> 13) & 0x0002) |
((i >> 11) & 0x0004) | ((i >> 9) & 0x0008) |
@ -303,7 +300,7 @@ void jaguar_cpu_device::init_tables()
((i << 13) & 0x4000) | ((i << 15) & 0x8000);
/* fill in the condition table */
condition_table = global_alloc_array(UINT8, 32 * 8);
condition_table = std::make_unique<UINT8[]>(32 * 8);
for (i = 0; i < 8; i++)
for (j = 0; j < 32; j++)
{
@ -440,12 +437,7 @@ jaguar_cpu_device::~jaguar_cpu_device()
if (--table_refcount != 0)
return;
if (mirror_table != nullptr)
global_free_array(mirror_table);
mirror_table = nullptr;
if (condition_table != nullptr)
global_free_array(condition_table);
condition_table = nullptr;
}

View File

@ -164,6 +164,10 @@ protected:
static const UINT32 convert_zero[32];
bool m_tables_referenced;
UINT32 table_refcount;
std::unique_ptr<UINT16[]> mirror_table;
std::unique_ptr<UINT8[]> condition_table;
const op_func *m_table;
void abs_rn(UINT16 op);

View File

@ -108,7 +108,7 @@ at29c040a_device::at29c040a_device(const machine_config &mconfig, const char *ta
void at29x_device::nvram_default()
{
memset(m_eememory, 0, m_memory_size+2);
memset(m_eememory.get(), 0, m_memory_size+2);
}
//-------------------------------------------------
@ -118,7 +118,7 @@ void at29x_device::nvram_default()
void at29x_device::nvram_read(emu_file &file)
{
file.read(m_eememory, m_memory_size+2);
file.read(m_eememory.get(), m_memory_size+2);
}
//-------------------------------------------------
@ -131,7 +131,7 @@ void at29x_device::nvram_write(emu_file &file)
// If we don't write (because there were no changes), the file will be wiped
if (TRACE_PRG) logerror("%s: Write to NVRAM file\n", tag());
m_eememory[0] = m_version;
file.write(m_eememory, m_memory_size+2);
file.write(m_eememory.get(), m_memory_size+2);
}
/*
@ -157,7 +157,7 @@ void at29x_device::device_timer(emu_timer &timer, device_timer_id id, int param,
case PGM_3:
// Programming cycle end; now burn the buffer into the flash EEPROM
memcpy(m_eememory + 2 + get_sector_number(m_programming_last_offset) * m_sector_size, m_programming_buffer, m_sector_size);
memcpy(m_eememory.get() + 2 + get_sector_number(m_programming_last_offset) * m_sector_size, m_programming_buffer.get(), m_sector_size);
if (TRACE_PRG) logerror("%s: Sector write completed at location %04x\n", tag(), m_programming_last_offset);
@ -366,7 +366,7 @@ WRITE8_MEMBER( at29x_device::write )
else
{
if (TRACE_STATE) logerror("%s: Erase chip\n", tag());
memset(m_eememory+2, 0xff, m_memory_size);
memset(m_eememory.get()+2, 0xff, m_memory_size);
}
}
break;
@ -460,7 +460,7 @@ WRITE8_MEMBER( at29x_device::write )
{ // enter programming mode
if (TRACE_STATE) logerror("%s: Enter programming mode (m_pgm=%d, m_sdp=%d)\n", tag(), m_pgm, m_sdp);
// Clear the programming buffer
memset(m_programming_buffer, 0xff, m_sector_size);
memset(m_programming_buffer.get(), 0xff, m_sector_size);
m_pgm = PGM_2;
}
}
@ -479,8 +479,8 @@ WRITE8_MEMBER( at29x_device::write )
void at29x_device::device_start(void)
{
m_programming_buffer = global_alloc_array(UINT8, m_sector_size);
m_eememory = global_alloc_array(UINT8, m_memory_size+2);
m_programming_buffer = std::make_unique<UINT8[]>(m_sector_size);
m_eememory = std::make_unique<UINT8[]>(m_memory_size+2);
m_programming_timer = timer_alloc(PRGTIMER);
// TODO: Complete 16-bit handling
@ -490,8 +490,8 @@ void at29x_device::device_start(void)
void at29x_device::device_stop(void)
{
global_free_array(m_programming_buffer);
global_free_array(m_eememory);
m_programming_buffer = nullptr;
m_eememory = nullptr;
}
void at29x_device::device_reset(void)

View File

@ -63,7 +63,7 @@ protected:
private:
void sync_flags(void);
UINT8* m_eememory;
std::unique_ptr<UINT8[]> m_eememory;
bool m_lower_bbl; // set when lower boot block lockout is enabled
bool m_higher_bbl; // set when upper boot block lockout is enabled
@ -78,7 +78,7 @@ private:
bool m_disabling_sdb; // set when a sdp disable command is in progress
bool m_toggle_bit; // indicates flashing in progress (toggles for each query)
UINT8* m_programming_buffer;
std::unique_ptr<UINT8[]> m_programming_buffer;
int m_programming_last_offset;
emu_timer* m_programming_timer;
};

View File

@ -69,7 +69,7 @@ public:
*/
UINT32 m_port_size[2];
UINT8 m_port_write[2];
UINT8* m_port_data[2];
std::unique_ptr<UINT8[]> m_port_data[2];
UINT32 m_bank_switch;
UINT32 m_io_addr;

View File

@ -666,7 +666,7 @@ void hp48_state::hp48_apply_modules()
{
int off = (m_bank_switch << 16) % m_port_size[1];
LOG(( "hp48_apply_modules: port 2 offset is %i\n", off ));
m_modules[HP48_NCE3].data = m_port_data[1] + off;
m_modules[HP48_NCE3].data = m_port_data[1].get() + off;
}
/* ROM A19 (hi 256 KB) / NCE3 (port 2) control switch */
@ -922,13 +922,12 @@ void hp48_port_image_device::hp48_fill_port()
hp48_state *state = machine().driver_data<hp48_state>();
int size = state->m_port_size[m_port];
LOG(( "hp48_fill_port: %s module=%i size=%i rw=%i\n", tag(), m_module, size, state->m_port_write[m_port] ));
state->m_port_data[m_port] = global_alloc_array(UINT8, 2 * size);
memset( state->m_port_data[m_port], 0, 2 * size );
state->m_port_data[m_port] = make_unique_clear<UINT8[]>(2 * size);
state->m_modules[m_module].off_mask = 2 * (( size > 128 * 1024 ) ? 128 * 1024 : size) - 1;
state->m_modules[m_module].read = read8_delegate();
state->m_modules[m_module].write = write8_delegate();
state->m_modules[m_module].isnop = state->m_port_write[m_port] ? 0 : 1;
state->m_modules[m_module].data = state->m_port_data[m_port];
state->m_modules[m_module].data = (void*)state->m_port_data[m_port].get();
state->hp48_apply_modules();
}
@ -963,8 +962,8 @@ bool hp48_port_image_device::call_load()
state->m_port_size[m_port] = size;
state->m_port_write[m_port] = !is_readonly();
hp48_fill_port( );
fread(state->m_port_data[m_port], state->m_port_size[m_port] );
state->hp48_decode_nibble( state->m_port_data[m_port], state->m_port_data[m_port], state->m_port_size[m_port] );
fread(state->m_port_data[m_port].get(), state->m_port_size[m_port] );
state->hp48_decode_nibble( state->m_port_data[m_port].get(), state->m_port_data[m_port].get(), state->m_port_size[m_port] );
return IMAGE_INIT_PASS;
}
@ -996,11 +995,11 @@ void hp48_port_image_device::call_unload()
tag(), state->m_port_size[m_port], state->m_port_write[m_port] ));
if ( state->m_port_write[m_port] )
{
state->hp48_encode_nibble( state->m_port_data[m_port], state->m_port_data[m_port], state->m_port_size[m_port] );
state->hp48_encode_nibble( state->m_port_data[m_port].get(), state->m_port_data[m_port].get(), state->m_port_size[m_port] );
fseek( 0, SEEK_SET );
fwrite( state->m_port_data[m_port], state->m_port_size[m_port] );
fwrite( state->m_port_data[m_port].get(), state->m_port_size[m_port] );
}
global_free_array( state->m_port_data[m_port] );
state->m_port_data[m_port] = nullptr;
hp48_unfill_port();
state->hp48_apply_modules();
}