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 }