Commit 0772967e by Wenzel Jakob

allow nullptr when passing void* values

parent de1bca86
...@@ -328,6 +328,10 @@ public: ...@@ -328,6 +328,10 @@ public:
using type_caster<void_type>::cast; using type_caster<void_type>::cast;
bool load(handle h, bool) { bool load(handle h, bool) {
if (h.ptr() == Py_None) {
value = nullptr;
return true;
}
capsule c(h, true); capsule c(h, true);
if (!c.check()) if (!c.check())
return false; return false;
...@@ -336,8 +340,12 @@ public: ...@@ -336,8 +340,12 @@ public:
} }
static handle cast(void *ptr, return_value_policy /* policy */, handle /* parent */) { static handle cast(void *ptr, return_value_policy /* policy */, handle /* parent */) {
return capsule(ptr).inc_ref(); if (ptr)
return capsule(ptr).release();
else
return handle(Py_None).inc_ref();
} }
operator void *() { return value; } operator void *() { return value; }
private: private:
void *value; void *value;
......
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