summaryrefslogtreecommitdiff
path: root/src/glibext
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-06-04 21:29:51 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-06-04 21:29:51 (GMT)
commit2141476200ac16213c9d567708c081857bf7eb8c (patch)
tree5ddaa8958a9d1b5a1deb86f70bf80e71581cf337 /src/glibext
parent9593501b2e1a25e0e0201276733dc0cbd602ac93 (diff)
Measured the number of binary portions to load.
Diffstat (limited to 'src/glibext')
-rw-r--r--src/glibext/gbinportion.c39
-rw-r--r--src/glibext/gbinportion.h3
2 files changed, 42 insertions, 0 deletions
diff --git a/src/glibext/gbinportion.c b/src/glibext/gbinportion.c
index ff5ff7d..f99a7cc 100644
--- a/src/glibext/gbinportion.c
+++ b/src/glibext/gbinportion.c
@@ -1148,6 +1148,45 @@ static void g_binary_portion_print(GBinPortion *portion, GBufferLine *line, size
/******************************************************************************
* *
* Paramètres : portion = couche de portions à parcourir pour les recherches.*
+* *
+* Description : Compte le nombre de portions présentes dans une arborescence.*
+* *
+* Retour : Quantité de portions présentes. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+size_t g_binary_portion_count(const GBinPortion *portion)
+{
+ size_t result; /* Quantité à retourner */
+
+
+ size_t measure_portion_size(const GBinPortion *root)
+ {
+ size_t count; /* Nombre de trouvailles */
+ size_t i; /* Boucle de parcours */
+
+ count = 1;
+
+ for (i = 0; i < root->count; i++)
+ count += measure_portion_size(root->subs[i]);
+
+ return count;
+
+ }
+
+
+ result = measure_portion_size(portion);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : portion = couche de portions à parcourir pour les recherches.*
* x = abscisse du point de recherche. *
* area = étendue de portion mère, puis celle trouvée. [OUT] *
* *
diff --git a/src/glibext/gbinportion.h b/src/glibext/gbinportion.h
index 581be68..5c8c363 100644
--- a/src/glibext/gbinportion.h
+++ b/src/glibext/gbinportion.h
@@ -144,6 +144,9 @@ bool g_binary_portion_visit(GBinPortion *, visit_portion_fc, void *);
/* ------------------------ PARCOURS D'ENSEMBLES DE PORTIONS ------------------------ */
+/* Compte le nombre de portions présentes dans une arborescence. */
+size_t g_binary_portion_count(const GBinPortion *);
+
/* Recherche la portion présente à un point donné. */
GBinPortion *g_binary_portion_find_at_pos(GBinPortion *, gint, GdkRectangle *);