disable implicit numpy array use in old-style Python bindings because of hard-to-fix memory leaks (ticket #1177)

This commit is contained in:
Vadim Pisarevsky
2011-08-06 20:15:29 +00:00
parent 3f40a1d8c3
commit e2e4ee2f53
2 changed files with 12 additions and 11 deletions

View File

@@ -1600,15 +1600,15 @@ static int convert_to_CvMat(PyObject *o, CvMat **dst, const char *name)
Py_ssize_t buffer_len;
if (!is_cvmat(o)) {
#if !PYTHON_USE_NUMPY
return failmsg("Argument '%s' must be CvMat", name);
#else
//#if !PYTHON_USE_NUMPY
return failmsg("Argument '%s' must be CvMat. Use fromarray() to convert numpy arrays to CvMat", name);
/*#else
PyObject *asmat = fromarray(o, 0);
if (asmat == NULL)
return failmsg("Argument '%s' must be CvMat", name);
// now have the array obect as a cvmat, can use regular conversion
return convert_to_CvMat(asmat, dst, name);
#endif
#endif*/
} else {
m->a->refcount = NULL;
if (m->data && PyString_Check(m->data)) {
@@ -1666,15 +1666,15 @@ static int convert_to_CvArr(PyObject *o, CvArr **dst, const char *name)
} else if (is_cvmatnd(o)) {
return convert_to_CvMatND(o, (CvMatND**)dst, name);
} else {
#if !PYTHON_USE_NUMPY
return failmsg("CvArr argument '%s' must be IplImage, CvMat or CvMatND", name);
#else
//#if !PYTHON_USE_NUMPY
return failmsg("CvArr argument '%s' must be IplImage, CvMat or CvMatND. Use fromarray() to convert numpy arrays to CvMat or cvMatND", name);
/*#else
PyObject *asmat = fromarray(o, 0);
if (asmat == NULL)
return failmsg("CvArr argument '%s' must be IplImage, CvMat, CvMatND, or support the array interface", name);
// now have the array obect as a cvmat, can use regular conversion
return convert_to_CvArr(asmat, dst, name);
#endif
#endif*/
}
}