summaryrefslogtreecommitdiff
path: root/plugins/pychrysa/glibext/configuration.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/pychrysa/glibext/configuration.c')
-rw-r--r--plugins/pychrysa/glibext/configuration.c44
1 files changed, 6 insertions, 38 deletions
diff --git a/plugins/pychrysa/glibext/configuration.c b/plugins/pychrysa/glibext/configuration.c
index 9820af3..fd35b19 100644
--- a/plugins/pychrysa/glibext/configuration.c
+++ b/plugins/pychrysa/glibext/configuration.c
@@ -67,15 +67,10 @@ static bool py_config_param_define_constants(PyObject *);
/* ----------------------------- PARCOURS DE PARAMETRES ----------------------------- */
-
+/* Parcours des éléments de configuration */
typedef struct _pyConfigParamIterator
{
-
- PyObject_HEAD
- long int m;
- long int i;
-
-
+ PyObject_HEAD /* A laisser en premier */
GGenConfig *config; /* Configuration à parcourir */
GList *params; /* Liste de paramètres */
@@ -85,15 +80,10 @@ typedef struct _pyConfigParamIterator
} pyConfigParamIterator;
-
-
/* Prend acte d'un compteur de référence à 0. */
static void py_config_param_iterator_dealloc(PyObject *);
/* Fournit un itérateur pour paramètres de configuration. */
-static PyObject *py_config_param_iterator_iter(PyObject *);
-
-/* Fournit un itérateur pour paramètres de configuration. */
static PyObject *py_config_param_iterator_next(PyObject *);
/* Initialise un objet Python de type 'ConfigParamIterator'. */
@@ -646,28 +636,7 @@ static void py_config_param_iterator_dealloc(PyObject *self)
g_generic_config_runlock(iterator->config);
g_object_unref(G_OBJECT(iterator->config));
- Py_TYPE(self)->tp_free((PyObject*)self);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : self = itérateur à manipuler. *
-* *
-* Description : Fournit un itérateur pour paramètres de configuration. *
-* *
-* Retour : Instance Python prête à emploi. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static PyObject *py_config_param_iterator_iter(PyObject *self)
-{
- Py_INCREF(self);
-
- return self;
+ Py_TYPE(self)->tp_free((PyObject *)self);
}
@@ -700,7 +669,7 @@ static PyObject *py_config_param_iterator_next(PyObject *self)
if (item != NULL)
{
result = pygobject_new(G_OBJECT(item->data));
- Py_XINCREF(result);
+ Py_INCREF(result);
}
else
{
@@ -782,7 +751,7 @@ PyTypeObject *get_python_config_param_iterator_type(void)
.tp_doc = "Iterator for configuration parameters",
- .tp_iter = py_config_param_iterator_iter,
+ .tp_iter = PyObject_SelfIter,
.tp_iternext = py_config_param_iterator_next,
.tp_init = py_config_param_iterator_init,
@@ -816,7 +785,6 @@ bool register_python_config_param_iterator(PyObject *module)
py_config_param_iterator_type = get_python_config_param_iterator_type();
py_config_param_iterator_type->tp_base = &PyBaseObject_Type;
- py_config_param_iterator_type->tp_basicsize = py_config_param_iterator_type->tp_base->tp_basicsize;
if (PyType_Ready(py_config_param_iterator_type) != 0)
return false;
@@ -1063,7 +1031,7 @@ static PyObject *py_generic_config_list_params(PyObject *self, PyObject *args)
PyObject *args_list; /* Arguments de mise en place */
iterator_type = get_python_config_param_iterator_type();
-
+
Py_INCREF(self);
args_list = Py_BuildValue("(O)", self);