From 51d37960b1586eb7fda983900b52e7332eacbd25 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 22 Apr 2021 21:25:51 +0530 Subject: [PATCH] Make handle initialization explicit --- src/calibre/utils/cpp_binding.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/calibre/utils/cpp_binding.h b/src/calibre/utils/cpp_binding.h index abaa94fe9e..afc9f684c2 100644 --- a/src/calibre/utils/cpp_binding.h +++ b/src/calibre/utils/cpp_binding.h @@ -43,11 +43,11 @@ class generic_raii { class wchar_raii : public generic_raii { public: - explicit wchar_raii() noexcept {} - explicit wchar_raii(wchar_t *h) noexcept {} + explicit wchar_raii() noexcept { handle = NULL; } + explicit wchar_raii(wchar_t *h) noexcept { handle = h; } explicit wchar_raii(PyObject *unicode_object) noexcept { - if (!unicode_object || !PyUnicode_Check(unicode_object)) { PyErr_SetString(PyExc_TypeError, "Not a unicode object"); return; } - handle = PyUnicode_AsWideCharString(unicode_object, NULL); + if (!unicode_object || !PyUnicode_Check(unicode_object)) { handle = NULL; PyErr_SetString(PyExc_TypeError, "Not a unicode object"); } + else handle = PyUnicode_AsWideCharString(unicode_object, NULL); } }; static inline void python_object_destructor(void *p) { PyObject *x = reinterpret_cast(p); Py_XDECREF(x); }