(op: *mut PyObject, body: F)
| 872 | |
| 873 | #[inline(always)] |
| 874 | pub unsafe fn Py_TRASHCAN<F: FnOnce() -> ()>(op: *mut PyObject, body: F) { |
| 875 | let tstate = crate::pystate::PyThreadState_GET(); |
| 876 | if tstate.is_null() || (*tstate).trash_delete_nesting < PyTrash_UNWIND_LEVEL { |
| 877 | if !tstate.is_null() { |
| 878 | (*tstate).trash_delete_nesting += 1; |
| 879 | } |
| 880 | body(); |
| 881 | if !tstate.is_null() { |
| 882 | (*tstate).trash_delete_nesting -= 1; |
| 883 | if !(*tstate).trash_delete_later.is_null() && (*tstate).trash_delete_nesting <= 0 { |
| 884 | _PyTrash_thread_destroy_chain(); |
| 885 | } |
| 886 | } |
| 887 | } else { |
| 888 | _PyTrash_thread_deposit_object(op) |
| 889 | } |
| 890 | } |
nothing calls this directly
no test coverage detected