voodoo: convert variable length arrays to malloc'd
This commit is contained in:
@@ -2083,8 +2083,8 @@ static void banshee_overlay_draw(svga_t *svga, int displine)
|
||||
case VIDPROCCFG_FILTER_MODE_DITHER_4X4:
|
||||
if (banshee->voodoo->scrfilter && banshee->voodoo->scrfilterEnabled)
|
||||
{
|
||||
uint8_t fil[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t fil3[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t *fil = malloc((svga->overlay_latch.xsize) * 3);
|
||||
uint8_t *fil3 = malloc((svga->overlay_latch.xsize) * 3);
|
||||
|
||||
if (banshee->vidProcCfg & VIDPROCCFG_H_SCALE_ENABLE) /* leilei HACK - don't know of real 4x1 hscaled behavior yet, double for now */
|
||||
{
|
||||
@@ -2146,6 +2146,9 @@ static void banshee_overlay_draw(svga_t *svga, int displine)
|
||||
fil[(x)*3+2] = vb_filter_v1_rb [fil[x*3+2]] [fil3[(x+1) *3+2]];
|
||||
p[x] = (fil[x*3+2] << 16) | (fil[x*3+1] << 8) | fil[x*3];
|
||||
}
|
||||
|
||||
free(fil);
|
||||
free(fil3);
|
||||
}
|
||||
else /* filter disabled by emulator option */
|
||||
{
|
||||
@@ -2168,14 +2171,14 @@ static void banshee_overlay_draw(svga_t *svga, int displine)
|
||||
case VIDPROCCFG_FILTER_MODE_DITHER_2X2:
|
||||
if (banshee->voodoo->scrfilter && banshee->voodoo->scrfilterEnabled)
|
||||
{
|
||||
uint8_t fil[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t soak[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t soak2[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t *fil = malloc((svga->overlay_latch.xsize) * 3);
|
||||
uint8_t *soak = malloc((svga->overlay_latch.xsize) * 3);
|
||||
uint8_t *soak2 = malloc((svga->overlay_latch.xsize) * 3);
|
||||
|
||||
uint8_t samp1[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t samp2[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t samp3[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t samp4[(svga->overlay_latch.xsize) * 3];
|
||||
uint8_t *samp1 = malloc((svga->overlay_latch.xsize) * 3);
|
||||
uint8_t *samp2 = malloc((svga->overlay_latch.xsize) * 3);
|
||||
uint8_t *samp3 = malloc((svga->overlay_latch.xsize) * 3);
|
||||
uint8_t *samp4 = malloc((svga->overlay_latch.xsize) * 3);
|
||||
|
||||
src = &svga->vram[src_addr2 & svga->vram_mask];
|
||||
OVERLAY_SAMPLE(banshee->overlay_buffer[1]);
|
||||
@@ -2229,6 +2232,14 @@ static void banshee_overlay_draw(svga_t *svga, int displine)
|
||||
p[x] = (fil[x*3+2] << 16) | (fil[x*3+1] << 8) | fil[x*3];
|
||||
}
|
||||
}
|
||||
|
||||
free(fil);
|
||||
free(soak);
|
||||
free(soak2);
|
||||
free(samp1);
|
||||
free(samp2);
|
||||
free(samp3);
|
||||
free(samp4);
|
||||
}
|
||||
else /* filter disabled by emulator option */
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user