From 9363a95d4070eca422d27e485836be7889c22273 Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Thu, 3 Oct 2024 22:25:46 +0200 Subject: [PATCH] dossier 'scripts' (empty) + alphabetic_index.all renamed: read_me.doc + use valgrind --- include/graphics.h | 2 + alphabetic_index.all => read_me.doc | 106 +++++++++++++++++++++------- src/widget/topbar/modal.c | 19 ++--- 3 files changed, 92 insertions(+), 35 deletions(-) rename alphabetic_index.all => read_me.doc (82%) diff --git a/include/graphics.h b/include/graphics.h index db91556..5476dc8 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -161,6 +161,8 @@ void graphics_draw_vertex (const int graphics_stack_id, /* * Writes values to describe a line from a to b into the line buffer * + * @use liste de fonctions GTK + * * @param coords GLuint (a,b) * * @return void diff --git a/alphabetic_index.all b/read_me.doc similarity index 82% rename from alphabetic_index.all rename to read_me.doc index b7238a6..dd8cdca 100644 --- a/alphabetic_index.all +++ b/read_me.doc @@ -1,6 +1,8 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Gem-graph client * -* Alphabetic Index of functions names * +* What the documentation contains and how to use it * +* Docstring content: rationale and usage * +* Alphabetic Index 2024 of functions names * * * * Copyright © 2021 Libre en Communs * * Copyright © 2024 Jean Sirmai * @@ -25,48 +27,102 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * docstrings + * ---------- + * + * 1) localisées dans les headers + * + * 2) structure: + * + * texte libre: que fait la fonction? + * où est-elle définie (dans quel fichier?) + * par quelles fonctions est-elle appelée? + * @param paramètres pris en entrée + * @return valeur retournée en sortie + * @use liste de fonctions GTK appelées par cette fonction, dont: + * @use_mem? celles qui doivent être 'free' après usage + * + * TODO : actuellement, valgrind bin/gem-graph-client détecte : + * + * HEAP SUMMARY: + * in use at exit: 11,537,505 bytes in 42,285 blocks + * total heap usage: 483,548 allocs, + * 441,263 frees, + * 112,049,363 bytes allocated + * LEAK SUMMARY: + * definitely lost: 40,161 bytes in 79 blocks + * indirectly lost: 11,233 bytes in 489 blocks + * possibly lost: 7,879,639 bytes in 7,844 blocks + * still reachable: 3,412,408 bytes in 32,248 blocks + * suppressed: 0 bytes in 0 blocks + * Rerun with --leak-check=full to see details of leaked memory + * + * valgrind --leak-check=full > ERROR SUMMARY: 1572 errors from 680 contexts + * --track-origins=yes ERROR SUMMARY: 896 errors from 4 contexts + * --show-leak-kinds=all + * + * + * 3) TODO des scripts devraient pouvoir recueillir ces informations + * pour produire automatiquement, à la demande, des listes comme celle qui suit. + * (voir le dossier 'scripts') + * + * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + + + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * C O N V E N T I O N S E T R È G L E S D E N O M M A G E - 2 0 2 4 * -* Toute fonction qui peut être appelée à partir d'un autre module -* doit indiquer, par son nom: -* -* - le lieu (le fichier) où elle est définie, -* - le type d'action qu'elle exécute et -* - l'objet ou les objets modifié.s par cette action. +* Le nom d'une fonction doit permettre d'identifier facilement: +* - le lieu (le fichier) où elle est définie, +* - le type d'action qu'elle exécute et +* - l'objet ou les objets modifié.s par cette action. * * - - - * -* Ces informations sont encodées au moyen de "préfixes" standardisés et -* le nom de chaque fonction est une combinaison/concaténation de ces préfixes. -* En octobre 2024, la première version de cet index classe en trois listes -* l'ensemble des préfixes préférentiellement utilisés. +* Ces trois informations sont encodées au moyen de trois "préfixes" +* associés et concaténés dans cet ordre pour former le nom. +* ? +* L'ordre des deux derniers préfixes peut-il être inversé +* pour que le nom soit "human-readable". +* Faut-il autoriser l'usage des alias ? (ex: 'concat') +* ? * -* Ces listes sont en cours d'élaboration. -* Elles ne sont ni limitatives ni ordonnées. +* En octobre 2024, la première version de cet index classe en trois listes +* l'ensemble des préfixes utilisés. +* +* Ces listes sont en cours d'élaboration. +* Elles ne sont ni limitatives ni exhaustives ni ordonnées. +* TODO * * - - - * -* Les fichiers sont définis par leur adresse dans la hiérarchie "src": -* ex: /graphics/draw/ -* /fsm/measures/manager/ -* /util/draw/gl/ -* /widget/one_rule/algebra/assign/ +* Le premier préfixe est l'adresse du fichier dans la hiérarchie "src": +* ex: graphics_draw_ +* fsm_measures_manager_ +* util_draw_gl_ +* widget_one_rule_algebra_assign_ * -* Liste des préfixes indiquant la fonction: +* Le deuxième préfixe est choisi dans une liste de fonctions types: * get, set, reset, read, write, print, edit, concat, design, * init, create, add, remove, trigger, draw, erase, restore, push * setup, shutdown, update, list, sort, seek, select, fix, debug, * render, realize, unrealize, activate, exec, stop, signal, * -* Liste des objets sur lesquels agissent les fonctions: +* Le troisième préfixe est choisi dans une liste d'objets +* sur lesquels agissent les fonctions: * number, string, view, window, list, tree, stack, +* file, buffer, callback, signal, * state, rules, data, results, image, stock, -* widget, button, slider, color, -* glarea, shader, file, buffer, +* widget, button, slider, color, glarea, shader, * point, line, plan, space_unit, site, arrow, slot, vertex, ridge, -* callback, signal, * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -283,7 +339,3 @@ widget_state_XYZ_reset_all widget/state/middle TODO (disp window_design_topbar_left widget/dispatch window_design_topbar_right widget/dispatch - - - - diff --git a/src/widget/topbar/modal.c b/src/widget/topbar/modal.c index 51aafcd..7a1c2dc 100644 --- a/src/widget/topbar/modal.c +++ b/src/widget/topbar/modal.c @@ -56,16 +56,19 @@ void widget_design_text_window (GtkWindow *main_window, GtkWindow *text_window) void *widget_get_text_from_address (gchar *text_address) { - GtkWidget *view = gtk_text_view_new (); - GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); - gtk_text_buffer_set_text (buffer, util_read_file (text_address), -1); - gtk_text_buffer_set_modified (buffer, FALSE); + GtkWidget *view = gtk_text_view_new (); + GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); + // TODO Gtk-CRITICAL + // gtk_text_buffer_set_text: assertion 'text != NULL' failed + // if (util_read_file (text_address)) < inefficace + // gtk_text_buffer_set_text (buffer, util_read_file (text_address), -1); + gtk_text_buffer_set_modified (buffer, FALSE); - GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new()); - gtk_scrolled_window_set_child (scrolled_window, view); - gtk_scrolled_window_set_policy (scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new()); + gtk_scrolled_window_set_child (scrolled_window, view); + gtk_scrolled_window_set_policy (scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - return GTK_WIDGET (scrolled_window); + return GTK_WIDGET (scrolled_window); }