From b51fa02cc383ce2dca2e678374d78763fc7fbd27 Mon Sep 17 00:00:00 2001 From: Ivan Smirnov Date: Mon, 18 Jul 2016 22:35:50 +0100 Subject: [PATCH] Store array requests in local variables in tests --- example/example20.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/example/example20.cpp b/example/example20.cpp index 32b50e3d0..6557021cf 100644 --- a/example/example20.cpp +++ b/example/example20.cpp @@ -69,7 +69,8 @@ py::array mkarray_via_buffer(size_t n) { template py::array_t create_recarray(size_t n) { auto arr = mkarray_via_buffer(n); - auto ptr = static_cast(arr.request().ptr); + auto req = arr.request(); + auto ptr = static_cast(req.ptr); for (size_t i = 0; i < n; i++) { ptr[i].x = i % 2; ptr[i].y = (uint32_t) i; ptr[i].z = (float) i * 1.5f; } @@ -82,7 +83,8 @@ std::string get_format_unbound() { py::array_t create_nested(size_t n) { auto arr = mkarray_via_buffer(n); - auto ptr = static_cast(arr.request().ptr); + auto req = arr.request(); + auto ptr = static_cast(req.ptr); for (size_t i = 0; i < n; i++) { ptr[i].a.x = i % 2; ptr[i].a.y = (uint32_t) i; ptr[i].a.z = (float) i * 1.5f; ptr[i].b.x = (i + 1) % 2; ptr[i].b.y = (uint32_t) (i + 1); ptr[i].b.z = (float) (i + 1) * 1.5f; @@ -92,7 +94,8 @@ py::array_t create_nested(size_t n) { py::array_t create_partial_nested(size_t n) { auto arr = mkarray_via_buffer(n); - auto ptr = static_cast(arr.request().ptr); + auto req = arr.request(); + auto ptr = static_cast(req.ptr); for (size_t i = 0; i < n; i++) { ptr[i].a.x = i % 2; ptr[i].a.y = (uint32_t) i; ptr[i].a.z = (float) i * 1.5f; } @@ -101,9 +104,9 @@ py::array_t create_partial_nested(size_t n) { template void print_recarray(py::array_t arr) { - auto buf = arr.request(); - auto ptr = static_cast(buf.ptr); - for (size_t i = 0; i < buf.size; i++) + auto req = arr.request(); + auto ptr = static_cast(req.ptr); + for (size_t i = 0; i < req.size; i++) std::cout << ptr[i] << std::endl; }