Generated by Cython 0.29.30
Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.
Raw output: _finalizer.c
01: from libc.stdlib cimport free
02:
03: cdef class _finalizer:
04: cdef void *_obj
05:
+06: def __cinit__(void * obj):
/* Python wrapper */
static int __pyx_pw_7develia_7cytools_10_finalizer_10_finalizer_1__cinit__(PyObject *__pyx_v_obj, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7develia_7cytools_10_finalizer_10_finalizer_1__cinit__(PyObject *__pyx_v_obj, PyObject *__pyx_args, PyObject *__pyx_kwds) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
__Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
__pyx_r = __pyx_pf_7develia_7cytools_10_finalizer_10_finalizer___cinit__(((struct __pyx_obj_7develia_7cytools_10_finalizer__finalizer *)__pyx_v_obj));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_7develia_7cytools_10_finalizer_10_finalizer___cinit__(struct __pyx_obj_7develia_7cytools_10_finalizer__finalizer *__pyx_v_obj) {
CYTHON_UNUSED struct __pyx_obj_7develia_7cytools_10_finalizer__finalizer *__pyx_v__obj = NULL;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__cinit__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
__Pyx_XDECREF((PyObject *)__pyx_v__obj);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+07: _obj = obj
__Pyx_INCREF(((PyObject *)__pyx_v_obj));
__pyx_v__obj = __pyx_v_obj;
08:
+09: def __dealloc__(self):
/* Python wrapper */
static void __pyx_pw_7develia_7cytools_10_finalizer_10_finalizer_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_7develia_7cytools_10_finalizer_10_finalizer_3__dealloc__(PyObject *__pyx_v_self) {
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
__pyx_pf_7develia_7cytools_10_finalizer_10_finalizer_2__dealloc__(((struct __pyx_obj_7develia_7cytools_10_finalizer__finalizer *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
}
static void __pyx_pf_7develia_7cytools_10_finalizer_10_finalizer_2__dealloc__(struct __pyx_obj_7develia_7cytools_10_finalizer__finalizer *__pyx_v_self) {
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__dealloc__", 0);
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
}
+10: if self._obj is not NULL:
__pyx_t_1 = ((__pyx_v_self->_obj != NULL) != 0);
if (__pyx_t_1) {
/* … */
}
+11: free(self._obj)
free(__pyx_v_self->_obj);