1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2025-02-20 13:54:14 +01:00

Hopefully fixed crashing when unregistering ConCommands and ConVars

--HG--
extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/trunk%4066
This commit is contained in:
Scott Ehlert 2005-05-22 03:35:33 +00:00
parent 8ba6224916
commit c336ea0818
4 changed files with 13 additions and 4 deletions

View File

@ -93,8 +93,13 @@ IConCommandBaseAccessor *CSmmAPI::GetCvarBaseAccessor()
return static_cast<IConCommandBaseAccessor *>(&g_SMConVarAccessor);
}
void CSmmAPI::UnregisterCvar(ConCommandBase *pCvar)
bool CSmmAPI::RegisterConCmdBase(ConCommandBase *pCommand)
{
g_SMConVarAccessor.Unregister(pCvar);
return g_SMConVarAccessor.RegisterConCommandBase(pCommand);
}
void CSmmAPI::UnregisterConCmdBase(ConCommandBase *pCommand)
{
g_SMConVarAccessor.Unregister(pCommand);
}

View File

@ -35,7 +35,8 @@ namespace SourceMM
void SetLastMetaReturn(META_RES res);
META_RES GetLastMetaReturn();
IConCommandBaseAccessor *GetCvarBaseAccessor();
void UnregisterCvar(ConCommandBase *pCvar);
bool RegisterConCmdBase(ConCommandBase *pCommand);
void UnregisterConCmdBase(ConCommandBase *pCommand);
private:
META_RES m_Res;
};

View File

@ -42,7 +42,8 @@ public:
public:
//Added in 1.00-RC2 to solve concommand problems
virtual IConCommandBaseAccessor *GetCvarBaseAccessor() =0;
virtual void UnregisterCvar(ConCommandBase *pCvar) =0;
virtual bool RegisterConCmdBase(ConCommandBase *pCommand) =0;
virtual void UnregisterConCmdBase(ConCommandBase *pCommand) =0;
};
#endif //_INCLUDE_ISMM_API_H

View File

@ -69,6 +69,8 @@ void SMConVarAccessor::Unregister(ConCommandBase *pCvar)
ptr->SetNext(const_cast<ConCommandBase *>(pCvar->GetNext()));
pCvar->SetNext(NULL);
}
m_RegisteredCommands.remove(pCvar);
}
ConVar metamod_version("metamod_version", SOURCEMM_VERSION, FCVAR_REPLICATED | FCVAR_SPONLY, "Metamod:Source Version");