]> git.ipfire.org Git - pakfire.git/commitdiff
python: Use the string array function for arches
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 27 Jan 2025 16:34:26 +0000 (16:34 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 27 Jan 2025 16:34:26 +0000 (16:34 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/python/package.c
src/python/pakfiremodule.c
src/python/util.c
src/python/util.h

index fc0e939685dcae369ee6d24453880e0c9bffdcaf..5022d43af2c5b470057a8d2ba09f9f20789ea046 100644 (file)
@@ -242,7 +242,7 @@ static PyObject* Package_get_url(PackageObject* self) {
 static PyObject* Package_get_groups(PackageObject* self) {
        char** groups = pakfire_package_get_strings(self->package, PAKFIRE_PKG_GROUPS);
 
-       PyObject* ret = PyUnicodeList_FromStringArray(groups);
+       PyObject* ret = PyUnicodeList_FromStringArray((const char**)groups);
 
        // Cleanup
        if (groups)
@@ -306,7 +306,7 @@ static PyObject* Package_get_build_arches(PackageObject* self) {
        char** build_arches = pakfire_package_get_strings(self->package, PAKFIRE_PKG_BUILD_ARCHES);
 
        // Make a new list
-       PyObject* ret = PyUnicodeList_FromStringArray(build_arches);
+       PyObject* ret = PyUnicodeList_FromStringArray((const char**)build_arches);
 
        // Cleanup
        if (build_arches)
index d32602d0beb753e9966833c574d270e264b04306..276954afde466a39cdd9c89336c8d7af93010158 100644 (file)
@@ -47,41 +47,16 @@ PyObject* PyExc_CheckError;
 PyObject* PyExc_CheckFileVerificationError;
 
 static PyObject* Pakfire_supported_arches(void) {
-       int r;
+       const char** arches = NULL;
 
        // Fetch all architectures
-       const char** arches = pakfire_supported_arches();
+       arches = pakfire_supported_arches();
        if (!arches) {
                PyErr_SetFromErrno(PyExc_OSError);
                return NULL;
        }
 
-       // Create a new list
-       PyObject* list = PyList_New(0);
-       if (!list)
-               return NULL;
-
-       // Append all architectures
-       for (const char** arch = arches; *arch; arch++) {
-               PyObject* object = PyUnicode_FromString(*arch);
-               if (!object)
-                       goto ERROR;
-
-               // Append to list
-               r = PyList_Append(list, object);
-               if (r) {
-                       Py_DECREF(object);
-                       goto ERROR;
-               }
-
-               Py_DECREF(object);
-       }
-
-       return list;
-
-ERROR:
-       Py_DECREF(list);
-       return NULL;
+       return PyUnicodeList_FromStringArray(arches);
 }
 
 static PyObject* Pakfire_version_compare(PyObject* self, PyObject* args) {
index 8db5072240029afa43d6c1f07cfb1713d4f4e261..f1abd0cd118fcb37d99848eea49b61fc20e4f19e 100644 (file)
@@ -33,7 +33,7 @@
 #include "package.h"
 #include "util.h"
 
-PyObject* PyUnicodeList_FromStringArray(char** l) {
+PyObject* PyUnicodeList_FromStringArray(const char** l) {
        PyObject* list = NULL;
        PyObject* s = NULL;
        int r;
index 0d286e640f9ad221077fbb2f4326b954118e74d0..79cc72ebfbe651f733c4d540a8cebb6f8c96531e 100644 (file)
@@ -26,7 +26,7 @@
 #include <pakfire/filelist.h>
 #include <pakfire/packagelist.h>
 
-PyObject* PyUnicodeList_FromStringArray(char** l);
+PyObject* PyUnicodeList_FromStringArray(const char** l);
 
 PyObject* PyList_FromPackageList(struct pakfire_packagelist* packagelist);
 PyObject* PyList_FromFileList(struct pakfire_filelist* filelist);