Fix SEGV to create empty shaped numpy array (#1371)

Fix a segfault when creating a 0-dimension, c-strides array.
This commit is contained in:
Naotoshi Seo
2018-05-06 13:59:25 +00:00
committed by Jason Rhinelander
parent 4b874616b2
commit 5ef1af138d
3 changed files with 10 additions and 2 deletions

View File

@@ -758,8 +758,9 @@ protected:
static std::vector<ssize_t> c_strides(const std::vector<ssize_t> &shape, ssize_t itemsize) {
auto ndim = shape.size();
std::vector<ssize_t> strides(ndim, itemsize);
for (size_t i = ndim - 1; i > 0; --i)
strides[i - 1] = strides[i] * shape[i];
if (ndim > 0)
for (size_t i = ndim - 1; i > 0; --i)
strides[i - 1] = strides[i] * shape[i];
return strides;
}