From 6e5d2ac6ac51ccf97e4690dc1810cfc1f5f131f2 Mon Sep 17 00:00:00 2001 From: Nick Hastings Date: Mon, 3 Apr 2023 22:53:14 -0400 Subject: [PATCH] Update CCommand --- public/tier1/convar.h | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/public/tier1/convar.h b/public/tier1/convar.h index c870453d..9cff7e6c 100644 --- a/public/tier1/convar.h +++ b/public/tier1/convar.h @@ -513,11 +513,10 @@ private: COMMAND_MAX_LENGTH = 512, }; - int m_nArgc; - int m_nArgv0Size; - char m_pArgSBuffer[ COMMAND_MAX_LENGTH ]; - char m_pArgvBuffer[ COMMAND_MAX_LENGTH ]; - const char* m_ppArgv[ COMMAND_MAX_ARGC ]; + int m_nArgv0Size; + CUtlVectorFixedGrowable m_ArgSBuffer; + CUtlVectorFixedGrowable m_ArgvBuffer; + CUtlVectorFixedGrowable m_Args; }; inline int CCommand::MaxCommandLength() @@ -527,22 +526,22 @@ inline int CCommand::MaxCommandLength() inline int CCommand::ArgC() const { - return m_nArgc; + return m_Args.Count(); } inline const char **CCommand::ArgV() const { - return m_nArgc ? (const char**)m_ppArgv : NULL; + return ArgC() ? (const char**)m_Args.Base() : NULL; } inline const char *CCommand::ArgS() const { - return m_nArgv0Size ? &m_pArgSBuffer[m_nArgv0Size] : ""; + return m_nArgv0Size ? *(const char **)(m_ArgSBuffer.Base() + m_nArgv0Size) : ""; } inline const char *CCommand::GetCommandString() const { - return m_nArgc ? m_pArgSBuffer : ""; + return ArgC() ? m_ArgSBuffer.Base() : ""; } inline const char *CCommand::Arg( int nIndex ) const @@ -550,9 +549,9 @@ inline const char *CCommand::Arg( int nIndex ) const // FIXME: Many command handlers appear to not be particularly careful // about checking for valid argc range. For now, we're going to // do the extra check and return an empty string if it's out of range - if ( nIndex < 0 || nIndex >= m_nArgc ) + if ( nIndex < 0 || nIndex >= ArgC() ) return ""; - return m_ppArgv[nIndex]; + return m_Args[nIndex]; } inline const char *CCommand::operator[]( int nIndex ) const