summaryrefslogtreecommitdiff
path: root/docs/examples/userguide/extension_types/owned_pointer.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/userguide/extension_types/owned_pointer.pyx')
-rw-r--r--docs/examples/userguide/extension_types/owned_pointer.pyx17
1 files changed, 17 insertions, 0 deletions
diff --git a/docs/examples/userguide/extension_types/owned_pointer.pyx b/docs/examples/userguide/extension_types/owned_pointer.pyx
new file mode 100644
index 000000000..98b61d91c
--- /dev/null
+++ b/docs/examples/userguide/extension_types/owned_pointer.pyx
@@ -0,0 +1,17 @@
+
+from libc.stdlib cimport free
+
+
+cdef class OwnedPointer:
+ cdef void* ptr
+
+ def __dealloc__(self):
+ if self.ptr is not NULL:
+ free(self.ptr)
+
+
+ @staticmethod
+ cdef create(void* ptr):
+ p = OwnedPointer()
+ p.ptr = ptr
+ return p