From 98ba98c06bbea58aa7e971b1cf87a118a0525433 Mon Sep 17 00:00:00 2001 From: Ivan Smirnov Date: Sun, 24 Jul 2016 20:29:44 +0100 Subject: [PATCH] Add a simplified buffer_info ctor for 1-D case --- include/pybind11/common.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/pybind11/common.h b/include/pybind11/common.h index 302d75a60..a91598505 100644 --- a/include/pybind11/common.h +++ b/include/pybind11/common.h @@ -210,6 +210,7 @@ struct buffer_info { std::vector strides; // Number of entries between adjacent entries (for each per dimension) buffer_info() : ptr(nullptr), view(nullptr) {} + buffer_info(void *ptr, size_t itemsize, const std::string &format, size_t ndim, const std::vector &shape, const std::vector &strides) : ptr(ptr), itemsize(itemsize), size(1), format(format), @@ -218,6 +219,10 @@ struct buffer_info { size *= shape[i]; } + buffer_info(void *ptr, size_t itemsize, const std::string &format, size_t size) + : buffer_info(ptr, itemsize, format, 1, std::vector { size }, + std::vector { itemsize }) { } + buffer_info(Py_buffer *view) : ptr(view->buf), itemsize((size_t) view->itemsize), size(1), format(view->format), ndim((size_t) view->ndim), shape((size_t) view->ndim), strides((size_t) view->ndim), view(view) {