From e6470b33215dcf5346d4c067955fe19aa7b07da8 Mon Sep 17 00:00:00 2001
From: Tiago Freitas Pereira <tiagofrepereira@gmail.com>
Date: Sat, 28 Feb 2015 19:37:22 +0100
Subject: [PATCH] Solved more memory leaks. PLDA is the only missing to check

---
 bob/learn/em/MAP_gmm_trainer.cpp | 3 +++
 bob/learn/em/ivector_machine.cpp | 2 +-
 bob/learn/em/kmeans_machine.cpp  | 2 +-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/bob/learn/em/MAP_gmm_trainer.cpp b/bob/learn/em/MAP_gmm_trainer.cpp
index 7b22bc5..437e277 100644
--- a/bob/learn/em/MAP_gmm_trainer.cpp
+++ b/bob/learn/em/MAP_gmm_trainer.cpp
@@ -78,6 +78,9 @@ static int PyBobLearnEMMAPGMMTrainer_init_base_trainer(PyBobLearnEMMAPGMMTrainer
   PyObject* keyword_relevance_factor = Py_BuildValue("s", kwlist1[1]);
   PyObject* keyword_alpha            = Py_BuildValue("s", kwlist2[1]);
 
+  auto keyword_relevance_factor_ = make_safe(keyword_relevance_factor);
+  auto keyword_alpha_            = make_safe(keyword_alpha);  
+  
   //Here we have to select which keyword argument to read  
   if (kwargs && PyDict_Contains(kwargs, keyword_relevance_factor) && (PyArg_ParseTupleAndKeywords(args, kwargs, "O!dO!|O!O!d", kwlist1, 
                                                                       &PyBobLearnEMGMMMachine_Type, &gmm_machine,
diff --git a/bob/learn/em/ivector_machine.cpp b/bob/learn/em/ivector_machine.cpp
index 607a449..73d4d96 100644
--- a/bob/learn/em/ivector_machine.cpp
+++ b/bob/learn/em/ivector_machine.cpp
@@ -302,7 +302,7 @@ PyObject* PyBobLearnEMIVectorMachine_getUBM(PyBobLearnEMIVectorMachineObject* se
     (PyBobLearnEMGMMMachineObject*)PyBobLearnEMGMMMachine_Type.tp_alloc(&PyBobLearnEMGMMMachine_Type, 0);
   retval->cxx = ubm_gmmMachine;
 
-  return Py_BuildValue("O",retval);
+  return Py_BuildValue("N",retval);
   BOB_CATCH_MEMBER("ubm could not be read", 0)
 }
 int PyBobLearnEMIVectorMachine_setUBM(PyBobLearnEMIVectorMachineObject* self, PyObject* value, void*){
diff --git a/bob/learn/em/kmeans_machine.cpp b/bob/learn/em/kmeans_machine.cpp
index 352ccde..8149210 100644
--- a/bob/learn/em/kmeans_machine.cpp
+++ b/bob/learn/em/kmeans_machine.cpp
@@ -535,7 +535,7 @@ static PyObject* PyBobLearnEMKMeansMachine_get_variances_and_weights_for_each_cl
   
   self->cxx->getVariancesAndWeightsForEachCluster(*PyBlitzArrayCxx_AsBlitz<double,2>(input),variances,weights);
 
-  return Py_BuildValue("(O,O)",PyBlitzArrayCxx_AsConstNumpy(variances), PyBlitzArrayCxx_AsConstNumpy(weights));
+  return Py_BuildValue("(N,N)",PyBlitzArrayCxx_AsConstNumpy(variances), PyBlitzArrayCxx_AsConstNumpy(weights));
 
   BOB_CATCH_MEMBER("cannot compute the variances and weights for each cluster", 0)
 }
-- 
GitLab