From f5f7a44a477fb1a96b1531afc08e1674a620e37b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 15 Oct 2020 21:28:13 +0530 Subject: [PATCH] Allow detaching handles --- src/calibre/utils/windows/winutil.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/calibre/utils/windows/winutil.cpp b/src/calibre/utils/windows/winutil.cpp index 8eded19e0e..422bdf6199 100644 --- a/src/calibre/utils/windows/winutil.cpp +++ b/src/calibre/utils/windows/winutil.cpp @@ -55,6 +55,13 @@ Handle_dealloc(Handle *self) { Py_CLEAR(self->associated_name); } +static PyObject* +Handle_detach(Handle *self) { + void *h = self->handle; + self->handle = NULL; + return PyLong_FromVoidPtr(h); +} + static PyObject* Handle_as_int(Handle * self) { return PyLong_FromVoidPtr(self->handle); @@ -128,6 +135,7 @@ Handle_close(Handle *self) { #define M(name, args) {#name, (PyCFunction)Handle_##name, args, ""} static PyMethodDef Handle_methods[] = { M(close, METH_NOARGS), + M(detach, METH_NOARGS), {NULL, NULL, 0, NULL} }; #undef M