| 220 | } |
| 221 | |
| 222 | Status CapsulizeArray(const std::shared_ptr<Array>& arr, PyObject** out) { |
| 223 | auto capsule = new ArrayCapsule{{arr}}; |
| 224 | *out = PyCapsule_New(reinterpret_cast<void*>(capsule), "arrow::Array", |
| 225 | &ArrayCapsule_Destructor); |
| 226 | if (*out == nullptr) { |
| 227 | delete capsule; |
| 228 | RETURN_IF_PYERROR(); |
| 229 | } |
| 230 | return Status::OK(); |
| 231 | } |
| 232 | |
| 233 | Status CapsulizeBuffer(const std::shared_ptr<Buffer>& buffer, PyObject** out) { |
| 234 | auto capsule = new BufferCapsule{{buffer}}; |