game_shared: workaround crash on exit (caused by GoldSrc dlclosing client before initializing it)

This commit is contained in:
Alibek Omarov 2023-09-09 04:44:21 +03:00
parent 3c55a584a3
commit d62c5fda47

View File

@ -129,6 +129,8 @@ CVoiceStatus::CVoiceStatus()
m_bTalking = m_bServerAcked = false; m_bTalking = m_bServerAcked = false;
// a1ba: should be safe, it's a simple type
memset(m_Labels, 0, sizeof(m_Labels));
memset(m_pBanButtons, 0, sizeof(m_pBanButtons)); memset(m_pBanButtons, 0, sizeof(m_pBanButtons));
m_bServerModEnable = -1; m_bServerModEnable = -1;
@ -138,7 +140,7 @@ CVoiceStatus::CVoiceStatus()
CVoiceStatus::~CVoiceStatus() CVoiceStatus::~CVoiceStatus()
{ {
g_pInternalVoiceStatus = NULL; g_pInternalVoiceStatus = NULL;
for(int i=0; i < MAX_VOICE_SPEAKERS; i++) for(int i=0; i < MAX_VOICE_SPEAKERS; i++)
{ {
delete m_Labels[i].m_pLabel; delete m_Labels[i].m_pLabel;
@ -146,17 +148,17 @@ CVoiceStatus::~CVoiceStatus()
delete m_Labels[i].m_pIcon; delete m_Labels[i].m_pIcon;
m_Labels[i].m_pIcon = NULL; m_Labels[i].m_pIcon = NULL;
delete m_Labels[i].m_pBackground; delete m_Labels[i].m_pBackground;
m_Labels[i].m_pBackground = NULL; m_Labels[i].m_pBackground = NULL;
} }
delete m_pLocalLabel; delete m_pLocalLabel;
m_pLocalLabel = NULL; m_pLocalLabel = NULL;
FreeBitmaps(); FreeBitmaps();
if(gEngfuncs.pfnGetGameDirectory()) if(gEngfuncs.pfnGetGameDirectory && gEngfuncs.pfnGetGameDirectory())
{ {
if(m_bBanMgrInitialized) if(m_bBanMgrInitialized)
{ {