core/systems/ForwardSys.cpp
changeset 527 6613e685b45b
parent 526 bcb82491f9df
child 529 830259af8435
     1.1 --- a/core/systems/ForwardSys.cpp	Thu Feb 22 02:09:46 2007 +0000
     1.2 +++ b/core/systems/ForwardSys.cpp	Thu Feb 22 02:20:15 2007 +0000
     1.3 @@ -278,11 +278,6 @@
     1.4  	{
     1.5  		func = (*iter);
     1.6  
     1.7 -		if (!func->IsRunnable())
     1.8 -		{
     1.9 -			continue;
    1.10 -		}
    1.11 -
    1.12  		for (unsigned int i=0; i<num_params; i++)
    1.13  		{
    1.14  			param = &temp_info[i];
    1.15 @@ -612,13 +607,21 @@
    1.16  {
    1.17  	bool found = false;
    1.18  	FuncIter iter;
    1.19 +	List<IPluginFunction *> *lst;
    1.20 +
    1.21 +	if (func->IsRunnable())
    1.22 +	{
    1.23 +		lst = &m_functions;
    1.24 +	} else {
    1.25 +		lst = &m_paused;
    1.26 +	}
    1.27  
    1.28  	for (iter=m_functions.begin(); iter!=m_functions.end(); iter++)
    1.29  	{
    1.30  		if ((*iter) == func)
    1.31  		{
    1.32  			found = true;
    1.33 -			m_functions.erase(iter);
    1.34 +			lst->erase(iter);
    1.35  			break;
    1.36  		}
    1.37  	}
    1.38 @@ -660,7 +663,12 @@
    1.39  		return false;
    1.40  	}
    1.41  
    1.42 -	m_functions.push_back(func);
    1.43 +	if (func->IsRunnable())
    1.44 +	{
    1.45 +		m_functions.push_back(func);
    1.46 +	} else {
    1.47 +		m_paused.push_back(func);
    1.48 +	}
    1.49  
    1.50  	return true;
    1.51  }