Optimise string read in vscript save/restore

This commit is contained in:
samisalreadytaken 2025-06-08 13:21:44 +03:00
parent 776c4e78bc
commit b431151bac

View File

@ -3835,26 +3835,10 @@ void SquirrelVM::ReadObject( SQObjectPtr &pObj, CUtlBuffer* pBuffer, ReadStateMa
case OT_STRING: case OT_STRING:
{ {
int len = pBuffer->GetInt(); int len = pBuffer->GetInt();
char *psz; char *psz = (char*)pBuffer->PeekGet( 0 );
pBuffer->SeekGet( CUtlBuffer::SEEK_CURRENT, len );
if ( len < 1024 ) Assert( pBuffer->IsValid() );
{
psz = (char*)stackalloc( len );
}
else
{
psz = (char*)malloc( len );
}
pBuffer->Get( psz, len );
obj._unVal.pString = SQString::Create( _ss(vm_), psz, len ); obj._unVal.pString = SQString::Create( _ss(vm_), psz, len );
if ( len >= 1024 )
{
free( psz );
}
break; break;
} }
case OT_TABLE: case OT_TABLE: