core/systems/ExtensionSys.cpp
changeset 1089 275107f9ca95
parent 1018 e466e7319a68
child 1112 152ceef17866
     1.1 --- a/core/systems/ExtensionSys.cpp	Tue Jul 10 08:21:24 2007 +0000
     1.2 +++ b/core/systems/ExtensionSys.cpp	Thu Jul 12 02:57:43 2007 +0000
     1.3 @@ -529,13 +529,19 @@
     1.4  			 n_iter++)
     1.5  		{
     1.6  			natives = (*n_iter);
     1.7 +			uint32_t idx;
     1.8  			unsigned int i=0;
     1.9  			while (natives[i].func != NULL && natives[i].name != NULL)
    1.10  			{
    1.11 -				if (pContext->BindNative(&natives[i++]) == SP_ERROR_NONE)
    1.12 +				if (pContext->BindNative(&natives[i]) == SP_ERROR_NONE)
    1.13  				{
    1.14 -					set = true;
    1.15 +					pContext->FindNativeByName(natives[i].name, &idx);
    1.16 +					if (!(pContext->GetContext()->natives[idx].flags & SP_NTVFLAG_OPTIONAL))
    1.17 +					{
    1.18 +						set = true;
    1.19 +					}
    1.20  				}
    1.21 +				i++;
    1.22  			}
    1.23  		}
    1.24  		if (set && (pExt->m_Plugins.find(pPlugin) == pExt->m_Plugins.end()))