[Numpy-svn] r8319 - trunk/numpy/core/src/multiarray
numpy-svn at scipy.org
numpy-svn at scipy.org
Sun Apr 4 16:47:49 EDT 2010
Author: ptvirtan
Date: 2010-04-04 15:47:48 -0500 (Sun, 04 Apr 2010)
New Revision: 8319
Modified:
trunk/numpy/core/src/multiarray/ctors.c
Log:
ENH: core: add sanity checks and warnings to PEP3118 -> ndarray conversion
Modified: trunk/numpy/core/src/multiarray/ctors.c
===================================================================
--- trunk/numpy/core/src/multiarray/ctors.c 2010-04-04 20:21:03 UTC (rev 8318)
+++ trunk/numpy/core/src/multiarray/ctors.c 2010-04-04 20:47:48 UTC (rev 8319)
@@ -1674,8 +1674,22 @@
if (view->format != NULL) {
descr = (PyObject*)_descriptor_from_pep3118_format(view->format);
if (descr == NULL) {
+ PyObject *msg;
+ msg = PyBytes_FromFormat("Invalid PEP 3118 format string: '%s'",
+ view->format);
+ PyErr_WarnEx(PyExc_RuntimeWarning, PyBytes_AS_STRING(msg), 0);
+ Py_DECREF(msg);
goto fail;
}
+
+ /* Sanity check */
+ if (descr->elsize != view->itemsize) {
+ PyErr_WarnEx(PyExc_RuntimeWarning,
+ "Item size computed from the PEP 3118 buffer format "
+ "string does not match the actual item size.",
+ 0);
+ goto fail;
+ }
}
else {
descr = PyArray_DescrNewFromType(PyArray_STRING);
More information about the Numpy-svn
mailing list