Browse Source

Fix memory leaks when parsing files.

hl_urbicide
Andrey Akhmichin 4 years ago
parent
commit
5dd184da23
  1. 23
      cl_dll/hud_spectator.cpp

23
cl_dll/hud_spectator.cpp

@ -824,6 +824,7 @@ bool CHudSpectator::ParseOverviewFile()
char levelname[256] = { 0 }; char levelname[256] = { 0 };
char token[1024] = { 0 }; char token[1024] = { 0 };
float height; float height;
bool ret = false;
char *afile = NULL, *pfile = NULL; char *afile = NULL, *pfile = NULL;
@ -843,7 +844,7 @@ bool CHudSpectator::ParseOverviewFile()
strcpy( m_OverviewData.map, gEngfuncs.pfnGetLevelName() ); strcpy( m_OverviewData.map, gEngfuncs.pfnGetLevelName() );
if( m_OverviewData.map[0] == '\0' ) if( m_OverviewData.map[0] == '\0' )
return false; // not active yet return ret; // not active yet
strcpy( levelname, m_OverviewData.map + 5 ); strcpy( levelname, m_OverviewData.map + 5 );
levelname[strlen( levelname ) - 4] = 0; levelname[strlen( levelname ) - 4] = 0;
@ -855,7 +856,7 @@ bool CHudSpectator::ParseOverviewFile()
if( !pfile ) if( !pfile )
{ {
gEngfuncs.Con_DPrintf( "Couldn't open file %s. Using default values for overiew mode.\n", filename ); gEngfuncs.Con_DPrintf( "Couldn't open file %s. Using default values for overiew mode.\n", filename );
return false; return ret;
} }
while( true ) while( true )
@ -872,7 +873,7 @@ bool CHudSpectator::ParseOverviewFile()
if( stricmp( token, "{" ) ) if( stricmp( token, "{" ) )
{ {
gEngfuncs.Con_Printf( "Error parsing overview file %s. (expected { )\n", filename ); gEngfuncs.Con_Printf( "Error parsing overview file %s. (expected { )\n", filename );
return false; goto end;
} }
pfile = gEngfuncs.COM_ParseFile( pfile, token ); pfile = gEngfuncs.COM_ParseFile( pfile, token );
@ -912,7 +913,7 @@ bool CHudSpectator::ParseOverviewFile()
else else
{ {
gEngfuncs.Con_Printf( "Error parsing overview file %s. (%s unkown)\n", filename, token ); gEngfuncs.Con_Printf( "Error parsing overview file %s. (%s unkown)\n", filename, token );
return false; goto end;
} }
pfile = gEngfuncs.COM_ParseFile( pfile, token ); // parse next token pfile = gEngfuncs.COM_ParseFile( pfile, token ); // parse next token
@ -924,7 +925,7 @@ bool CHudSpectator::ParseOverviewFile()
if( m_OverviewData.layers == OVERVIEW_MAX_LAYERS ) if( m_OverviewData.layers == OVERVIEW_MAX_LAYERS )
{ {
gEngfuncs.Con_Printf( "Error parsing overview file %s. ( too many layers )\n", filename ); gEngfuncs.Con_Printf( "Error parsing overview file %s. ( too many layers )\n", filename );
return false; goto end;
} }
pfile = gEngfuncs.COM_ParseFile( pfile, token ); pfile = gEngfuncs.COM_ParseFile( pfile, token );
@ -932,7 +933,7 @@ bool CHudSpectator::ParseOverviewFile()
if( stricmp( token, "{" ) ) if( stricmp( token, "{" ) )
{ {
gEngfuncs.Con_Printf( "Error parsing overview file %s. (expected { )\n", filename ); gEngfuncs.Con_Printf( "Error parsing overview file %s. (expected { )\n", filename );
return false; goto end;
} }
pfile = gEngfuncs.COM_ParseFile( pfile, token ); pfile = gEngfuncs.COM_ParseFile( pfile, token );
@ -953,7 +954,7 @@ bool CHudSpectator::ParseOverviewFile()
else else
{ {
gEngfuncs.Con_Printf( "Error parsing overview file %s. (%s unkown)\n", filename, token ); gEngfuncs.Con_Printf( "Error parsing overview file %s. (%s unkown)\n", filename, token );
return false; goto end;
} }
pfile = gEngfuncs.COM_ParseFile( pfile, token ); // parse next token pfile = gEngfuncs.COM_ParseFile( pfile, token ); // parse next token
@ -963,12 +964,14 @@ bool CHudSpectator::ParseOverviewFile()
} }
} }
gEngfuncs.COM_FreeFile( afile );
m_mapZoom = m_OverviewData.zoom; m_mapZoom = m_OverviewData.zoom;
m_mapOrigin = m_OverviewData.origin; m_mapOrigin = m_OverviewData.origin;
return true; ret = true;
end:
gEngfuncs.COM_FreeFile( afile );
return ret;
} }
void CHudSpectator::LoadMapSprites() void CHudSpectator::LoadMapSprites()

Loading…
Cancel
Save