diff options
Diffstat (limited to 'plugins/pychrysa/glibext/configuration.c')
-rw-r--r-- | plugins/pychrysa/glibext/configuration.c | 44 |
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); |