possible bug fix

This commit is contained in:
David Anderson
2004-09-07 02:16:05 +00:00
parent 0fe010f4f0
commit 3cbcebae56
5 changed files with 23 additions and 6 deletions

View File

@ -314,10 +314,20 @@ int CForwardMngr::registerSPForward(const char *funcName, AMX *amx, int numParam
CSPForward *pForward;
if (m_FreeSPForwards.size())
{
retVal = m_FreeSPForwards.back();
m_FreeSPForwards.pop_back();
pForward = m_SPForwards[retVal>>1]; // >>1 because unregisterSPForward pushes the id which contains the sp flag
pForward->Set(funcName, amx, numParams, paramTypes);
if (m_SPForwards.size())
{
retVal = m_FreeSPForwards.back();
m_FreeSPForwards.pop_back();
pForward = m_SPForwards[retVal>>1]; // >>1 because unregisterSPForward pushes the id which contains the sp flag
pForward->Set(funcName, amx, numParams, paramTypes);
} else {
m_SPForwards.clear();
pForward = new CSPForward();
if (!pForward)
return -1;
pForward->Set(funcName, amx, numParams, paramTypes);
m_SPForwards.push_back(pForward);
}
}
else
{