From 2c298f2b540d04e02b360c9f176d0c14dd42c363 Mon Sep 17 00:00:00 2001 From: "Erlend E. Aasland" Date: Sun, 9 Apr 2023 00:34:02 +0200 Subject: [PATCH] Doh --- PC/winreg.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/PC/winreg.c b/PC/winreg.c index 8a5e3c2ca11af1e..15d32e7fcb99c91 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -2059,16 +2059,11 @@ static struct PyMethodDef winreg_methods[] = { NULL, }; -static void -insint(PyObject * d, char * name, long value) -{ - PyObject *v = PyLong_FromLong(value); - if (!v || PyDict_SetItemString(d, name, v)) - PyErr_Clear(); - Py_XDECREF(v); -} - -#define ADD_INT(val) insint(d, #val, val) +#define ADD_INT(VAL) do { \ + if (PyModule_AddIntConstant(m, #VAL, VAL) < 0) { \ + goto error; \ + } \ +} while (0) static int inskey(PyObject *mod, char *name, HKEY key) @@ -2077,7 +2072,7 @@ inskey(PyObject *mod, char *name, HKEY key) if (v == NULL) { return -1; } - int rc = PyModule_AddObjectRef(name, v); + int rc = PyModule_AddObjectRef(mod, name, v); Py_DECREF(v); return rc; } @@ -2177,6 +2172,9 @@ PyMODINIT_FUNC PyInit_winreg(void) ADD_INT(REG_RESOURCE_LIST); ADD_INT(REG_FULL_RESOURCE_DESCRIPTOR); ADD_INT(REG_RESOURCE_REQUIREMENTS_LIST); + +#undef ADD_INT + return m; error: