[pygobject/gsoc2009: 106/160] Refactor _wrap_g_irepository_get_namespaces
- From: Simon van der Linden <svdlinden src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [pygobject/gsoc2009: 106/160] Refactor _wrap_g_irepository_get_namespaces
- Date: Fri, 14 Aug 2009 21:32:39 +0000 (UTC)
commit 21f883dfa6c2d69b34778fb8612cfbd03262b81e
Author: Simon van der Linden <svdlinden src gnome org>
Date: Mon Aug 3 23:17:44 2009 +0200
Refactor _wrap_g_irepository_get_namespaces
gi/pygirepository.c | 28 ++++++++++++++++++++--------
1 files changed, 20 insertions(+), 8 deletions(-)
---
diff --git a/gi/pygirepository.c b/gi/pygirepository.c
index da71640..ed490e8 100644
--- a/gi/pygirepository.c
+++ b/gi/pygirepository.c
@@ -139,21 +139,33 @@ _wrap_g_irepository_find_by_name(PyGIRepository *self, PyObject *args, PyObject
static PyObject *
_wrap_g_irepository_get_namespaces(PyGIRepository *self)
{
- char ** namespaces;
- int i, length;
- PyObject *retval;
+ char **namespaces;
+ gsize n_namespaces;
+ gsize i;
+ PyObject *py_namespaces;
namespaces = g_irepository_get_loaded_namespaces(self->repository);
- length = g_strv_length(namespaces);
- retval = PyTuple_New(length);
+ n_namespaces = g_strv_length(namespaces);
+ py_namespaces = PyTuple_New(n_namespaces);
+ if (py_namespaces == NULL) {
+ goto return_;
+ }
- for (i = 0; i < length; i++)
- PyTuple_SetItem(retval, i, PyString_FromString(namespaces[i]));
+ for (i = 0; i < n_namespaces; i++) {
+ PyObject *namespace_;
+ namespace_ = PyString_FromString(namespaces[i]);
+ if (namespace_ == NULL) {
+ Py_CLEAR(py_namespaces);
+ break;
+ }
+ PyTuple_SET_ITEM(py_namespaces, i, namespace_);
+ }
+return_:
g_strfreev (namespaces);
- return retval;
+ return py_namespaces;
}
static PyObject *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]