Salome HOME
Fix issue when there are two optimizer loops.
[modules/yacs.git] / src / runtime / SalomeOptimizerLoop.cxx
index 0b347f2e97ffb2d17b1c0a0588675ebdd5af9b92..6147386d436c38d5f9e88e7126168e93ed9bae8b 100644 (file)
@@ -69,6 +69,7 @@ SalomeOptimizerLoop::SalomeOptimizerLoop(const SalomeOptimizerLoop& other, Compo
 
 SalomeOptimizerLoop::~SalomeOptimizerLoop()
 {
+  Py_XDECREF(_pyAlgo);
 }
 
 Node *SalomeOptimizerLoop::simpleClone(ComposedNode *father, bool editionOnly) const
@@ -147,10 +148,11 @@ void SalomeOptimizerLoop::loadAlgorithm()
               PyObject *next;
           } SwigPyObject;
 
+          PyObject * _pyAlgo = PyDict_GetItemString(globals, "algo");
+          Py_XINCREF(_pyAlgo);
           SwigPyObject* pyalgo = (SwigPyObject*)PyDict_GetItemString(globals, "swigalgo");
           _alg=(OptimizerAlgBase*)pyalgo->ptr;
           _alg->setPool(&_myPool);
-          _alg->incrRef();
         }
       PyGILState_Release(gstate);
     }