]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
python: Simplify py_hresult.c
authorVolker Lendecke <vl@samba.org>
Fri, 30 Jan 2026 11:20:48 +0000 (12:20 +0100)
committerAnoop C S <anoopcs@samba.org>
Sun, 15 Feb 2026 10:42:33 +0000 (10:42 +0000)
CFLAGS=-Og did not finish this file. Also, this makes the file a few
hundred kilobytes smaller

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
source4/scripting/bin/gen_hresult.py

index dec0adf11be12f02f5e9a3cae23edab000c48321..1b41f87ca1280a390a31090d8ab45e33ba3f6e6c 100755 (executable)
@@ -140,24 +140,21 @@ def generatePythonFile(out_file, errors):
     out_file.write("\t.m_name = \"hresult\",\n")
     out_file.write("\t.m_doc = \"HRESULT defines\",\n")
     out_file.write("\t.m_size = -1,\n")
-    out_file.write("\t};\n\n")
+    out_file.write("};\n\n")
+    out_file.write("static void py_addstr(PyObject *m, HRESULT err, const char *name)\n");
+    out_file.write("{\n");
+    out_file.write("\tPyObject *num = PyLong_FromUnsignedLongLong(HRES_ERROR_V(err));\n");
+    out_file.write("\tPyModule_AddObject(m, name, num);\n");
+    out_file.write("}\n\n");
     out_file.write("MODULE_INIT_FUNC(hresult)\n")
     out_file.write("{\n")
     out_file.write("\tPyObject *m = NULL;\n")
-    out_file.write("\tPyObject *py_obj = NULL;\n")
-    out_file.write("\tint ret;\n\n")
     out_file.write("\tm = PyModule_Create(&moduledef);\n")
     out_file.write("\tif (m == NULL) {\n")
     out_file.write("\t\treturn NULL;\n")
     out_file.write("\t}\n\n")
     for err in errors:
-        out_file.write(f"\tpy_obj = PyLong_FromUnsignedLongLong(HRES_ERROR_V({err.err_define}));\n")
-        out_file.write(f"\tret = PyModule_AddObject(m, \"{err.err_define}\", py_obj);\n")
-        out_file.write("\tif (ret) {\n")
-        out_file.write("\t\tPy_XDECREF(py_obj);\n")
-        out_file.write("\t\tPy_DECREF(m);\n")
-        out_file.write("\t\treturn NULL;\n")
-        out_file.write("\t}\n")
+        out_file.write(f"\tpy_addstr(m, {err.err_define}, \"{err.err_define}\");\n")
     out_file.write("\n")
     out_file.write("\treturn m;\n")
     out_file.write("}\n")