summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/multiarray/calculation.c25
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;
}
}