diff --git a/bob/learn/misc/gaussian.cpp b/bob/learn/misc/gaussian.cpp index 4504e4f71738e818caeea560245f0c4cdf187af8..d39f914784373af3cad9702e3a191c68250a0c5c 100644 --- a/bob/learn/misc/gaussian.cpp +++ b/bob/learn/misc/gaussian.cpp @@ -69,9 +69,8 @@ static int PyBobLearnMiscGaussian_init_hdf5(PyBobLearnMiscGaussianObject* self, char** kwlist = Gaussian_doc.kwlist(2); PyBobIoHDF5FileObject* config = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobIoHDF5File_Type, &config)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)) return -1; - auto config_ = make_safe(config); try { self->cxx.reset(new bob::learn::misc::Gaussian(*(config->f))); diff --git a/bob/learn/misc/gmm_stats.cpp b/bob/learn/misc/gmm_stats.cpp index a4282cab083462ae362ac923af0b7a727e328119..6409945a2f07381feec951a74fc71210525b04e6 100644 --- a/bob/learn/misc/gmm_stats.cpp +++ b/bob/learn/misc/gmm_stats.cpp @@ -55,7 +55,7 @@ static int PyBobLearnMiscGMMStats_init_copy(PyBobLearnMiscGMMStatsObject* self, char** kwlist = GMMStats_doc.kwlist(1); PyBobLearnMiscGMMStatsObject* tt; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobLearnMiscGMMStats_Type, &tt)) return -1; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobLearnMiscGMMStats_Type, &tt)) return -1; self->cxx.reset(new bob::learn::misc::GMMStats(*tt->cxx)); return 0; @@ -66,13 +66,12 @@ static int PyBobLearnMiscGMMStats_init_hdf5(PyBobLearnMiscGMMStatsObject* self, char** kwlist = GMMStats_doc.kwlist(2); - PyObject* config = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!", kwlist, &PyBobIoHDF5File_Type, &config)) + PyBobIoHDF5FileObject* config = 0; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&", kwlist, &PyBobIoHDF5File_Converter, &config)) return -1; - auto h5f = reinterpret_cast<PyBobIoHDF5FileObject*>(config); try { - self->cxx.reset(new bob::learn::misc::GMMStats(*(h5f->f))); + self->cxx.reset(new bob::learn::misc::GMMStats(*(config->f))); } catch (std::exception& ex) { PyErr_SetString(PyExc_RuntimeError, ex.what());