ref: 4219f692b155bf650c0918bffbbfa8d41dd670b6
parent: 774702b72beca0424f7998754e2f258dbb7086a6
author: Konstantinn Bonnet <qu7uux@gmail.com>
date: Thu Mar 12 08:44:46 EDT 2015
fix occasional double free on abnormal exit ... when heapsize is too small, and VID_Shutdown is called before framebuf is allocated.
--- a/README
+++ b/README
@@ -12,9 +12,9 @@
- cdaudio, networking: PORTME
- high resolutions work up to 4096x4096 (arbitrary limit in r_shared.h)
. by default, quake uses a 8MB heap, which will be insufficient for higher
- resolutions → crash/exit with "Hunk_Alloc: failed on ..."
+ resolutions → exits with a related error message (not a note)
→ use [-mem MB], e.g.:
- ; quake -mem 24
+ ; quake -mem 16
. resolutions under around 328x160 don't work, possibly because
menu text isn't scaled down, or something
- mouse is grabbed using m_windowed cvar
--- a/vid_9.c
+++ b/vid_9.c
@@ -104,7 +104,7 @@
}while(--n > 0);
}
//for(xi = x+width-1; xi >= x; xi--)
- // dest[xi] = st2d_8to16table[src[xi]];
+ // dest[xi] = st2d_8to24table[src[xi]];
}
}
@@ -111,8 +111,10 @@
/* vid.height and vid.width must be set correctly before this call */
void ResetFrameBuffer (void)
{
- if(framebuf != nil)
+ if(framebuf != nil){
free(framebuf);
+ framebuf = nil;
+ }
if(d_pzbuffer){
D_FlushCaches();