diff options
author | Stefan van der Walt <stefan@sun.ac.za> | 2011-11-09 11:21:14 -0800 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2011-11-27 13:24:15 -0700 |
commit | eb46577e7be25d0a578d6275683ae6f28ac8ae06 (patch) | |
tree | 5e4bae3f6b0c7852d287bc92dceab2ed4bebf77c | |
parent | 04d225afa2b7b780a735fd95eb557ac3eb66e686 (diff) | |
download | numpy-eb46577e7be25d0a578d6275683ae6f28ac8ae06.tar.gz |
BUG: Do not segfault on dot between sparse matrices.
-rw-r--r-- | numpy/core/src/multiarray/multiarraymodule.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/multiarraymodule.c b/numpy/core/src/multiarray/multiarraymodule.c index cfbc0a3af..d06e782a1 100644 --- a/numpy/core/src/multiarray/multiarraymodule.c +++ b/numpy/core/src/multiarray/multiarraymodule.c @@ -945,12 +945,16 @@ PyArray_MatrixProduct2(PyObject *op1, PyObject *op2, PyArrayObject* out) char *op; npy_intp dimensions[NPY_MAXDIMS]; PyArray_DotFunc *dot; - PyArray_Descr *typec; + PyArray_Descr *typec = NULL; NPY_BEGIN_THREADS_DEF; typenum = PyArray_ObjectType(op1, 0); typenum = PyArray_ObjectType(op2, typenum); typec = PyArray_DescrFromType(typenum); + if (typec == NULL) { + PyErr_SetString(PyExc_ValueError, "Cannot find a common data type."); + return NULL; + } Py_INCREF(typec); ap1 = (PyArrayObject *)PyArray_FromAny(op1, typec, 0, 0, |