dossier 'scripts' (empty) + alphabetic_index.all renamed: read_me.doc + use valgrind

This commit is contained in:
Jean Sirmai 2024-10-03 22:25:46 +02:00
parent eab476145e
commit 9363a95d40
Signed by: jean
GPG Key ID: FB3115C340E057E3
3 changed files with 92 additions and 35 deletions

View File

@ -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

View File

@ -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 <contact@a-lec.org> *
* Copyright © 2024 Jean Sirmai <jean@a-lec.org> *
@ -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

View File

@ -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);
}