diff --git a/api/GenApi.py b/api/GenApi.py index 51d9a9a90911108e6b71594d75e65d355e8b54cd..90667ab6bf0f89e78985d255f2d6f5ebbb157d1c 100644 --- a/api/GenApi.py +++ b/api/GenApi.py @@ -1166,10 +1166,14 @@ def _ivectordouble(o): def _ivectorpair(o): if use_numpy: array = numpy.ascontiguousarray(o, numpy.int32) + if(len(o) and (array.ndim != 2 or array.shape[1] != 2)): + raise Exception("Invalid data for input vector of pairs") ct = array.ctypes ct.array = array - return ct, c_size_t(len(o) * 2) + return ct, c_size_t(len(o) * 2) else: + if(len(o) and len(o[0]) != 2): + raise Exception("Invalid data for input vector of pairs") return ((c_int * 2) * len(o))(*o), c_size_t(len(o) * 2) def _ivectorstring(o): diff --git a/api/gmsh.py b/api/gmsh.py index e25a820513c6d3d3ee17bc2d1f3e1f5c0b1a7ff9..f88a06bd6bc729d85246a9f18de68f0e4e0adbb9 100644 --- a/api/gmsh.py +++ b/api/gmsh.py @@ -150,10 +150,14 @@ def _ivectordouble(o): def _ivectorpair(o): if use_numpy: array = numpy.ascontiguousarray(o, numpy.int32) + if(len(o) and (array.ndim != 2 or array.shape[1] != 2)): + raise Exception("Invalid data for input vector of pairs") ct = array.ctypes ct.array = array - return ct, c_size_t(len(o) * 2) + return ct, c_size_t(len(o) * 2) else: + if(len(o) and len(o[0]) != 2): + raise Exception("Invalid data for input vector of pairs") return ((c_int * 2) * len(o))(*o), c_size_t(len(o) * 2) def _ivectorstring(o):