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