summaryrefslogtreecommitdiff
path: root/plugins/pychrysalide/analysis/block.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-12-14 08:50:58 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-12-14 08:50:58 (GMT)
commite526727b94444030a3ae4dc6d4431cb72aea31e0 (patch)
tree3277dcd38ddae530df00427e2df25af37e690c3e /plugins/pychrysalide/analysis/block.c
parente957ec4ff043f6025d6a993bb6e97fe7d57a8bd6 (diff)
Created an attribute to get the number of code blocks.
Diffstat (limited to 'plugins/pychrysalide/analysis/block.c')
-rw-r--r--plugins/pychrysalide/analysis/block.c37
1 files changed, 37 insertions, 0 deletions
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 }
};