mirror of
https://github.com/holub/mame
synced 2025-04-27 02:33:13 +03:00
Fix crash in drivers with NULL gfxdecode entries (nw)
This commit is contained in:
parent
4c8f8d9238
commit
f4e705346e
@ -114,12 +114,24 @@ void gfxdecode_device::device_start()
|
||||
for (curgfx = 0; curgfx < MAX_GFX_ELEMENTS && gfxdecodeinfo[curgfx].gfxlayout != NULL; curgfx++)
|
||||
{
|
||||
const gfx_decode_entry *gfxdecode = &gfxdecodeinfo[curgfx];
|
||||
UINT32 region_length;
|
||||
const UINT8 *region_base;
|
||||
|
||||
// resolve the region
|
||||
astring gfxregion;
|
||||
owner()->subtag(gfxregion, gfxdecode->memory_region);
|
||||
memory_region *region = (gfxdecode->memory_region != NULL) ? owner()->memregion(gfxregion) : NULL;
|
||||
UINT32 region_length = (region != NULL) ? (8 * region->bytes()) : 0;
|
||||
const UINT8 *region_base = (region != NULL) ? region->base() : NULL;
|
||||
if (gfxdecode->memory_region != NULL)
|
||||
{
|
||||
astring gfxregion;
|
||||
owner()->subtag(gfxregion, gfxdecode->memory_region);
|
||||
memory_region *region = owner()->memregion(gfxregion);
|
||||
region_length = 8 * region->bytes();
|
||||
region_base = region->base();
|
||||
}
|
||||
else
|
||||
{
|
||||
region_length = 0;
|
||||
region_base = NULL;
|
||||
}
|
||||
|
||||
UINT32 xscale = (gfxdecode->xscale == 0) ? 1 : gfxdecode->xscale;
|
||||
UINT32 yscale = (gfxdecode->yscale == 0) ? 1 : gfxdecode->yscale;
|
||||
UINT32 *extpoffs, extxoffs[MAX_ABS_GFX_SIZE], extyoffs[MAX_ABS_GFX_SIZE];
|
||||
|
Loading…
Reference in New Issue
Block a user