mirror of
https://github.com/pybind/pybind11.git
synced 2025-02-16 13:47:53 +00:00
parent
0e599589fe
commit
9978ed588b
@ -1414,14 +1414,19 @@ public:
|
|||||||
T* get_pointer() const {
|
T* get_pointer() const {
|
||||||
auto name = this->name();
|
auto name = this->name();
|
||||||
T *result = static_cast<T *>(PyCapsule_GetPointer(m_ptr, name));
|
T *result = static_cast<T *>(PyCapsule_GetPointer(m_ptr, name));
|
||||||
if (!result) pybind11_fail("Unable to extract capsule contents!");
|
if (!result) {
|
||||||
|
PyErr_Clear();
|
||||||
|
pybind11_fail("Unable to extract capsule contents!");
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Replaces a capsule's pointer *without* calling the destructor on the existing one.
|
/// Replaces a capsule's pointer *without* calling the destructor on the existing one.
|
||||||
void set_pointer(const void *value) {
|
void set_pointer(const void *value) {
|
||||||
if (PyCapsule_SetPointer(m_ptr, const_cast<void *>(value)) != 0)
|
if (PyCapsule_SetPointer(m_ptr, const_cast<void *>(value)) != 0) {
|
||||||
|
PyErr_Clear();
|
||||||
pybind11_fail("Could not set capsule pointer");
|
pybind11_fail("Could not set capsule pointer");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *name() const { return PyCapsule_GetName(m_ptr); }
|
const char *name() const { return PyCapsule_GetName(m_ptr); }
|
||||||
|
Loading…
Reference in New Issue
Block a user