diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2014-02-17 14:47:44 -0700 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2014-02-17 15:03:12 -0700 |
commit | 1b83d85bc4cfaccb12295d993c5a12e5c4029030 (patch) | |
tree | c10f997919c6c39b969a872e0b11afba83317951 /numpy/f2py/src/fortranobject.c | |
parent | 2868dc4a0513f58eafc013f3ba3d84ae07113199 (diff) | |
download | numpy-1b83d85bc4cfaccb12295d993c5a12e5c4029030.tar.gz |
BUG: #2408, Fix f2py Python 3 error message string bug.
The original was generating an exception message and, after aliasing,
calling PyBytes_AsString on a unicode string -> error. It was also
leaking references, although that probably didn't matter in context.
The fix here is on the cheap side, just use a C string for the message
without including the extra information about the erroneous type that
led to the exception.
No test, I don't know how to evoke this error.
Closes #2408.
Diffstat (limited to 'numpy/f2py/src/fortranobject.c')
-rw-r--r-- | numpy/f2py/src/fortranobject.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/numpy/f2py/src/fortranobject.c b/numpy/f2py/src/fortranobject.c index 0cc32348e..9c96c1f46 100644 --- a/numpy/f2py/src/fortranobject.c +++ b/numpy/f2py/src/fortranobject.c @@ -741,14 +741,12 @@ PyArrayObject* array_from_pyobj(const int type_num, return arr; } - if ((intent & F2PY_INTENT_INOUT) - || (intent & F2PY_INTENT_INPLACE) - || (intent & F2PY_INTENT_CACHE)) { - sprintf(mess,"failed to initialize intent(inout|inplace|cache) array" - " -- input must be array but got %s", - PyString_AsString(PyObject_Str(PyObject_Type(obj))) - ); - PyErr_SetString(PyExc_TypeError,mess); + if ((intent & F2PY_INTENT_INOUT) || + (intent & F2PY_INTENT_INPLACE) || + (intent & F2PY_INTENT_CACHE)) { + PyErr_SetString(PyExc_TypeError, + "failed to initialize intent(inout|inplace|cache) " + "array, input not an array"); return NULL; } |