Commit bf4911d3 authored by Mat's avatar Mat
Browse files

Use NPY_MAXDIMS as maximum supported number of array dimensions

Numpy already defines its maximum supported number of array
dimensions. The definition is in the public API, so let's use it.
parent 9a685e62
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -30,16 +30,13 @@
/* Magic header */
#define SHARED_ARRAY_MAGIC	"[SharedArray]"

/* Maximum number of dimensions */
#define SHARED_ARRAY_NDIMS_MAX	16

/* Array metadata */
struct array_meta {
	char	magic[16];
	size_t	size;
	int	typenum;
	int	ndims;
	npy_intp dims[SHARED_ARRAY_NDIMS_MAX];
	npy_intp dims[NPY_MAXDIMS];
} __attribute__ ((packed));

/* ArrayDesc object */
+4 −2
Original line number Diff line number Diff line
@@ -64,9 +64,11 @@ static PyObject *do_attach(const char *name)
	}

	/* Check the number of dimensions */
	if (meta.ndims > SHARED_ARRAY_NDIMS_MAX) {
	if (meta.ndims > NPY_MAXDIMS) {
		close(fd);
		PyErr_SetString(PyExc_ValueError, "Too many dimensions, recompile SharedArray!");
		PyErr_Format(PyExc_ValueError,
			     "number of dimensions must be within [0, %d]",
			     NPY_MAXDIMS);
		return NULL;
	}

+4 −2
Original line number Diff line number Diff line
@@ -43,8 +43,10 @@ static PyObject *do_create(const char *name, int ndims, npy_intp *dims, PyArray_
	PyLeonObject *leon;

	/* Check the number of dimensions */
	if (ndims > SHARED_ARRAY_NDIMS_MAX) {
		PyErr_SetString(PyExc_ValueError, "Too many dimensions, recompile SharedArray!");
	if (ndims > NPY_MAXDIMS) {
		PyErr_Format(PyExc_ValueError,
			     "number of dimensions must be within [0, %d]",
			     NPY_MAXDIMS);
		return NULL;
	}