diff options
-rw-r--r-- | numpy/core/src/multiarray/calculation.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/calculation.c b/numpy/core/src/multiarray/calculation.c index 8f32ce21c..dc6a7b15d 100644 --- a/numpy/core/src/multiarray/calculation.c +++ b/numpy/core/src/multiarray/calculation.c @@ -733,7 +733,30 @@ _GenericBinaryOutFunction(PyArrayObject *m1, PyObject *m2, PyArrayObject *out, return PyObject_CallFunction(op, "OO", m1, m2); } else { - return PyObject_CallFunction(op, "OOO", m1, m2, out); + PyObject *args, *kw, *ret; + + args = Py_BuildValue("OOO", m1, m2, out); + if (args == NULL) { + return NULL; + } + kw = PyDict_New(); + if (kw == NULL) { + Py_DECREF(args); + return NULL; + } + if (PyDict_SetItemString(kw, "casting", + PyUString_FromString("unsafe")) < 0) { + Py_DECREF(args); + Py_DECREF(kw); + return NULL; + } + + ret = PyObject_Call(op, args, kw); + + Py_DECREF(args); + Py_DECREF(kw); + + return ret; } } |