[q3map2] Unwind script stack in case of script loading error.

Also avoid type punning read into char* variable (even though char* and void* happen to be layout-compatible).
This commit is contained in:
Thomas Köppe 2018-01-08 15:18:29 +00:00
parent 606d72adf2
commit 760623150e

View file

@ -58,6 +58,7 @@ qboolean tokenready; // only qtrue if UnGetToken was just ca
*/
void AddScriptToStack( const char *filename, int index ){
int size;
void* buffer;
script++;
if ( script == &scriptstack[MAX_INCLUDES] ) {
@ -65,10 +66,11 @@ void AddScriptToStack( const char *filename, int index ){
}
strcpy( script->filename, ExpandPath( filename ) );
size = vfsLoadFile( script->filename, (void **)&script->buffer, index );
size = vfsLoadFile( script->filename, &buffer, index );
if ( size == -1 ) {
Sys_Printf( "Script file %s was not found\n", script->filename );
script--;
}
else
{
@ -78,11 +80,12 @@ void AddScriptToStack( const char *filename, int index ){
else{
Sys_Printf( "entering %s\n", script->filename );
}
}
script->line = 1;
script->script_p = script->buffer;
script->end_p = script->buffer + size;
script->buffer = buffer;
script->line = 1;
script->script_p = script->buffer;
script->end_p = script->buffer + size;
}
}