From e526727b94444030a3ae4dc6d4431cb72aea31e0 Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
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