Commit ab92eb37 by Jan Dohl

Fixed py:array constructor from failing for complex types

The array(const buffer_info &info) constructor fails when given
complex types since their format string is 'Zd' or 'Zf' which has
a length of two and causes an error here:

if (info.format.size() != 1)
    throw std::runtime_error("Unsupported buffer format!");

Fixed by allowing format sizes of one and two.
parent 61d67f04
...@@ -96,7 +96,7 @@ public: ...@@ -96,7 +96,7 @@ public:
array(const buffer_info &info) { array(const buffer_info &info) {
API& api = lookup_api(); API& api = lookup_api();
if (info.format.size() != 1) if ((info.format.size() < 1) || (info.format.size() > 2))
throw std::runtime_error("Unsupported buffer format!"); throw std::runtime_error("Unsupported buffer format!");
int fmt = (int) info.format[0]; int fmt = (int) info.format[0];
if (info.format == "Zd") if (info.format == "Zd")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment