From 4d45c32be97df8fc405754499e7c394d8df7a375 Mon Sep 17 00:00:00 2001 From: Alexander 'z33ky' Hirsch <1zeeky@gmail.com> Date: Sat, 13 Jun 2020 22:35:11 +0200 Subject: [PATCH] Switch to malloc() for C_SceneEntity::LoadScene() It used new char[] before, but it seems when the buffer is allocated using filesystem->ReadFileEx() we should free() the buffer, not delete[] it. CUtlBuffer also free()s the buffer, so malloc() should be the saner choice here. --- sp/src/game/client/c_sceneentity.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sp/src/game/client/c_sceneentity.cpp b/sp/src/game/client/c_sceneentity.cpp index 1b15faf4..f4c66cc7 100644 --- a/sp/src/game/client/c_sceneentity.cpp +++ b/sp/src/game/client/c_sceneentity.cpp @@ -823,10 +823,10 @@ CChoreoScene *C_SceneEntity::LoadScene( const char *filename ) if ( bufsize > 0 ) { // Definitely in scenes.image - pBuffer = new char[ bufsize ]; + pBuffer = malloc( bufsize ); if ( !scenefilecache->GetSceneData( filename, (byte *)pBuffer, bufsize ) ) { - delete[] pBuffer; + free( pBuffer ); return NULL; } @@ -866,10 +866,10 @@ CChoreoScene *C_SceneEntity::LoadScene( const char *filename ) if ( bufsize <= 0 ) return NULL; - pBuffer = new char[ bufsize ]; + pBuffer = malloc( bufsize ); if ( !scenefilecache->GetSceneData( filename, (byte *)pBuffer, bufsize ) ) { - delete[] pBuffer; + free( pBuffer ); return NULL; } @@ -897,7 +897,7 @@ CChoreoScene *C_SceneEntity::LoadScene( const char *filename ) } #endif - delete[] pBuffer; + free( pBuffer ); return pScene; } @@ -1261,4 +1261,4 @@ void C_SceneEntity::PrefetchAnimBlocks( CChoreoScene *pScene ) return; Msg( "%d of %d animations resident\n", nResident, nChecked ); -} \ No newline at end of file +}