From e526727b94444030a3ae4dc6d4431cb72aea31e0 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Fri, 14 Dec 2018 09:50:58 +0100 Subject: Created an attribute to get the number of code blocks. --- plugins/pychrysalide/analysis/block.c | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/plugins/pychrysalide/analysis/block.c b/plugins/pychrysalide/analysis/block.c index 563b4d2..1456e15 100644 --- a/plugins/pychrysalide/analysis/block.c +++ b/plugins/pychrysalide/analysis/block.c @@ -63,6 +63,9 @@ static PyObject *py_block_list_find_by_starting_addr(PyObject *, PyObject *); /* Itère sur l'ensemble des blocs de code inclus dans une liste. */ static PyObject *py_block_list_iter(PyObject *); +/* Dénombre les blocs de code inclus dans une liste. */ +static PyObject *py_block_list_count(PyObject *, void *); + /* ---------------------------------------------------------------------------------- */ @@ -423,6 +426,36 @@ static PyObject *py_block_list_iter(PyObject *self) /****************************************************************************** * * +* Paramètres : self = objet Python concerné par l'appel. * +* closure = non utilisé ici. * +* * +* Description : Dénombre les blocs de code inclus dans une liste. * +* * +* Retour : Quantité de blocs de code. * +* * +* Remarques : - * +* * +******************************************************************************/ + +static PyObject *py_block_list_count(PyObject *self, void *closure) +{ + PyObject *result; /* Trouvailles à retourner */ + GBlockList *list; /* Liste de blocs manipulée */ + size_t count; /* Nombre de blocs présents */ + + list = G_BLOCK_LIST(pygobject_get(self)); + + count = g_block_list_count_blocks(list); + + result = PyLong_FromUnsignedLong(count); + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : - * * * * Description : Fournit un accès à une définition de type à diffuser. * @@ -445,6 +478,10 @@ PyTypeObject *get_python_block_list_type(void) }; static PyGetSetDef py_block_list_getseters[] = { + { + "count", py_block_list_count, NULL, + "Quantity of code blocks included in the list.", NULL + }, { NULL } }; -- cgit v0.11.2-87-g4458