summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-03-13 23:59:29 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-03-13 23:59:29 (GMT)
commit8d8e5c02096f59a7227308a591fc5050ea5d92ff (patch)
tree15b5bc10b963d492d4393b83ccfd347230d6b41e
parentbde67ccf58fc858d5d0db4929db149ea12f50f96 (diff)
Given more flexibility to the field names of locations in XML databases.
-rw-r--r--ChangeLog23
-rw-r--r--src/analysis/db/collection.c40
-rw-r--r--src/analysis/db/items/bookmark.c8
-rw-r--r--src/analysis/db/items/comment.c26
-rw-r--r--src/analysis/db/items/switcher.c20
-rw-r--r--src/analysis/db/misc/rlestr.c6
-rw-r--r--src/analysis/db/misc/timestamp.c6
-rw-r--r--src/arch/vmpa.c36
-rw-r--r--src/arch/vmpa.h10
-rw-r--r--src/common/sqlite.c36
-rw-r--r--src/common/sqlite.h12
-rw-r--r--src/gtkext/gtkextstatusbar.c6
12 files changed, 174 insertions, 55 deletions
diff --git a/ChangeLog b/ChangeLog
index d3628c4..d098f3b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+16-03-14 Cyrille Bagard <nocbos@gmail.com>
+
+ * src/analysis/db/collection.c:
+ Update code and fix some memory leaks.
+
+ * src/analysis/db/items/bookmark.c:
+ * src/analysis/db/items/comment.c:
+ * src/analysis/db/items/switcher.c:
+ * src/analysis/db/misc/rlestr.c:
+ * src/analysis/db/misc/timestamp.c:
+ Update code.
+
+ * src/arch/vmpa.c:
+ * src/arch/vmpa.h:
+ Give more flexibility to the field names of locations in XML databases.
+
+ * src/common/sqlite.c:
+ * src/common/sqlite.h:
+ Provide a way to delete a list of bound values.
+
+ * src/gtkext/gtkextstatusbar.c:
+ Disable some functions of the old status bar.
+
16-03-13 Cyrille Bagard <nocbos@gmail.com>
* configure.ac:
diff --git a/src/analysis/db/collection.c b/src/analysis/db/collection.c
index aa7591e..09d9c90 100644
--- a/src/analysis/db/collection.c
+++ b/src/analysis/db/collection.c
@@ -949,11 +949,11 @@ bool g_db_collection_load_all_items(GDbCollection *collec, sqlite3 *db)
int native_type; /* Type de valeur dans la base */
GDbItem *new; /* Nouvel élément à insérer */
- if (!g_db_collection_setup_load(collec, &values, &count))
- return false;
-
result = false;
+ if (!g_db_collection_setup_load(collec, &values, &count))
+ goto gdclai_building_values;
+
/* Préparation de la requête */
sql = strdup("SELECT ");
@@ -1074,6 +1074,10 @@ bool g_db_collection_load_all_items(GDbCollection *collec, sqlite3 *db)
free(sql);
+ gdclai_building_values:
+
+ free_all_bound_values(values, count);
+
return result;
}
@@ -1104,11 +1108,11 @@ static bool g_db_collection_store_item(const GDbCollection *collec, const GDbIte
int ret; /* Bilan d'un appel à SQLite */
int index; /* Indice de valeur attachée */
- if (!g_db_item_prepare_db_statement(item, &values, &count))
- return false;
-
result = false;
+ if (!g_db_item_prepare_db_statement(item, &values, &count))
+ goto gdcsi_building_values;
+
/* Préparation de la requête */
sql = strdup("INSERT INTO ");
@@ -1212,6 +1216,10 @@ static bool g_db_collection_store_item(const GDbCollection *collec, const GDbIte
free(sql);
+ gdcsi_building_values:
+
+ free_all_bound_values(values, count);
+
return result;
}
@@ -1244,11 +1252,11 @@ static bool g_db_collection_store_updated_item(const GDbCollection *collec, cons
int index; /* Indice de valeur attachée */
const bound_value *timestamp; /* Valeur de l'horodatage */
- if (!g_db_item_prepare_db_statement(item, &values, &count))
- return false;
-
result = false;
+ if (!g_db_item_prepare_db_statement(item, &values, &count))
+ goto gdcsui_building_values;
+
/* Préparation de la requête */
sql = strdup("UPDATE ");
@@ -1290,7 +1298,7 @@ static bool g_db_collection_store_updated_item(const GDbCollection *collec, cons
if (ret != SQLITE_OK)
{
fprintf(stderr, "Can't prepare UPDATE statment '%s' (ret=%d): %s\n", sql, ret, sqlite3_errmsg(db));
- goto gdcsi_exit;
+ goto gdcsui_exit;
}
/* Attribution des valeurs */
@@ -1307,7 +1315,7 @@ static bool g_db_collection_store_updated_item(const GDbCollection *collec, cons
{
fprintf(stderr, "Can't bind value for parameter nb %d in '%s' (ret=%d): %s\n",
index - 1, sql, ret, sqlite3_errmsg(db));
- goto gdcsi_exit;
+ goto gdcsui_exit;
}
for (i = 0; i < count; i++)
@@ -1353,7 +1361,7 @@ static bool g_db_collection_store_updated_item(const GDbCollection *collec, cons
{
fprintf(stderr, "Can't bind value for parameter nb %d in '%s' (ret=%d): %s\n",
index - 1, sql, ret, sqlite3_errmsg(db));
- goto gdcsi_exit;
+ goto gdcsui_exit;
}
}
@@ -1365,17 +1373,21 @@ static bool g_db_collection_store_updated_item(const GDbCollection *collec, cons
if (ret != SQLITE_DONE)
{
fprintf(stderr, "UPDATE statement '%s' didn't return DONE (ret=%d): %s\n", sql, ret, sqlite3_errmsg(db));
- goto gdcsi_exit;
+ goto gdcsui_exit;
}
sqlite3_finalize(stmt);
result = true;
- gdcsi_exit:
+ gdcsui_exit:
free(sql);
+ gdcsui_building_values:
+
+ free_all_bound_values(values, count);
+
return result;
}
diff --git a/src/analysis/db/items/bookmark.c b/src/analysis/db/items/bookmark.c
index 4c93faf..c8da383 100644
--- a/src/analysis/db/items/bookmark.c
+++ b/src/analysis/db/items/bookmark.c
@@ -510,7 +510,7 @@ static bool g_db_bookmark_prepare_db_statement(const GDbBookmark *bookmark, boun
status = G_DB_ITEM_CLASS(g_db_bookmark_parent_class)->prepare_stmt(G_DB_ITEM(bookmark), values, count);
if (!status) return false;
- status = prepare_vmpa_db_statement(&bookmark->addr, values, count);
+ status = prepare_vmpa_db_statement(&bookmark->addr, NULL, values, count);
if (!status) return false;
status &= prepare_db_statement_for_rle_string(&bookmark->comment, "comment", values, count);
@@ -541,7 +541,7 @@ static bool g_db_bookmark_load(GDbBookmark *bookmark, const bound_value *values,
result = G_DB_ITEM_CLASS(g_db_bookmark_parent_class)->load(G_DB_ITEM(bookmark), values, count);
- result &= load_vmpa(&bookmark->addr, values, count);
+ result &= load_vmpa(&bookmark->addr, NULL, values, count);
result &= load_rle_string(&bookmark->comment, "comment", values, count);
@@ -752,7 +752,7 @@ static bool g_bookmark_collection_create_db_table(const GBookmarkCollection *col
sql = "CREATE TABLE Bookmarks (" \
SQLITE_DB_ITEM_CREATE ", " \
- SQLITE_VMPA_CREATE ", " \
+ SQLITE_SIMPLE_VMPA_CREATE ", " \
SQLITE_RLESTR_CREATE("comment") \
");";
@@ -790,7 +790,7 @@ static bool g_bookmark_collection_setup_load(GBookmarkCollection *collec, bound_
values, count);
if (!status) return false;
- if (!setup_load_for_vmpa(NULL, values, count))
+ if (!setup_load_for_vmpa(NULL, NULL, values, count))
return false;
if (!setup_load_of_rle_string(NULL, "comment", values, count))
diff --git a/src/analysis/db/items/comment.c b/src/analysis/db/items/comment.c
index b4a1dc0..8b9c25f 100644
--- a/src/analysis/db/items/comment.c
+++ b/src/analysis/db/items/comment.c
@@ -728,7 +728,7 @@ static bool g_db_comment_prepare_db_statement(const GDbComment *comment, bound_v
status = G_DB_ITEM_CLASS(g_db_comment_parent_class)->prepare_stmt(G_DB_ITEM(comment), values, count);
if (!status) return false;
- status = prepare_vmpa_db_statement(&comment->addr, values, count);
+ status = prepare_vmpa_db_statement(&comment->addr, NULL, values, count);
if (!status) return false;
*count += 1;
@@ -736,7 +736,8 @@ static bool g_db_comment_prepare_db_statement(const GDbComment *comment, bound_v
value = &(*values)[*count - 1];
- value->name = "flags";
+ value->cname = "flags";
+ value->built_name = false;
value->type = SQLITE_INTEGER;
value->integer = comment->flags;
value->delete = NULL;
@@ -749,14 +750,16 @@ static bool g_db_comment_prepare_db_statement(const GDbComment *comment, bound_v
value = &(*values)[*count - 2];
- value->name = "inlined";
+ value->cname = "inlined";
+ value->built_name = false;
value->type = SQLITE_BOOLEAN;
value->boolean = comment->inlined;
value->delete = NULL;
value = &(*values)[*count - 1];
- value->name = "repeatable";
+ value->cname = "repeatable";
+ value->built_name = false;
value->type = SQLITE_BOOLEAN;
value->boolean = comment->repeatable;
value->delete = NULL;
@@ -787,7 +790,7 @@ static bool g_db_comment_load(GDbComment *comment, const bound_value *values, si
result = G_DB_ITEM_CLASS(g_db_comment_parent_class)->load(G_DB_ITEM(comment), values, count);
- result &= load_vmpa(&comment->addr, values, count);
+ result &= load_vmpa(&comment->addr, NULL, values, count);
if (result)
{
@@ -1028,7 +1031,7 @@ static bool g_comment_collection_create_db_table(const GCommentCollection *colle
sql = "CREATE TABLE Comments (" \
SQLITE_DB_ITEM_CREATE ", " \
- SQLITE_VMPA_CREATE ", " \
+ SQLITE_SIMPLE_VMPA_CREATE ", " \
"flags INTEGER, " \
SQLITE_RLESTR_CREATE("text") ", " \
"inlined INTEGER, " \
@@ -1070,7 +1073,7 @@ static bool g_comment_collection_setup_load(GCommentCollection *collec, bound_va
values, count);
if (!status) return false;
- if (!setup_load_for_vmpa(NULL, values, count))
+ if (!setup_load_for_vmpa(NULL, NULL, values, count))
return false;
*count += 1;
@@ -1078,7 +1081,8 @@ static bool g_comment_collection_setup_load(GCommentCollection *collec, bound_va
value = &(*values)[*count - 1];
- value->name = "flags";
+ value->cname = "flags";
+ value->built_name = false;
value->type = SQLITE_INTEGER;
if (!setup_load_of_rle_string(NULL, "text", values, count))
@@ -1089,12 +1093,14 @@ static bool g_comment_collection_setup_load(GCommentCollection *collec, bound_va
value = &(*values)[*count - 2];
- value->name = "inlined";
+ value->cname = "inlined";
+ value->built_name = false;
value->type = SQLITE_BOOLEAN;
value = &(*values)[*count - 1];
- value->name = "repeatable";
+ value->cname = "repeatable";
+ value->built_name = false;
value->type = SQLITE_BOOLEAN;
return true;
diff --git a/src/analysis/db/items/switcher.c b/src/analysis/db/items/switcher.c
index 6497e41..de5fd36 100644
--- a/src/analysis/db/items/switcher.c
+++ b/src/analysis/db/items/switcher.c
@@ -648,7 +648,7 @@ static bool g_db_switcher_prepare_db_statement(const GDbSwitcher *switcher, boun
status = G_DB_ITEM_CLASS(g_db_switcher_parent_class)->prepare_stmt(G_DB_ITEM(switcher), values, count);
if (!status) return false;
- status = prepare_vmpa_db_statement(&switcher->addr, values, count);
+ status = prepare_vmpa_db_statement(&switcher->addr, NULL, values, count);
if (!status) return false;
*count += 2;
@@ -656,14 +656,16 @@ static bool g_db_switcher_prepare_db_statement(const GDbSwitcher *switcher, boun
value = &(*values)[*count - 2];
- value->name = "op_index";
+ value->cname = "op_index";
+ value->built_name = false;
value->type = SQLITE_INTEGER;
value->integer = switcher->index;
value->delete = NULL;
value = &(*values)[*count - 1];
- value->name = "type";
+ value->cname = "type";
+ value->built_name = false;
value->type = SQLITE_INTEGER;
value->integer = switcher->display;
value->delete = NULL;
@@ -694,7 +696,7 @@ static bool g_db_switcher_load(GDbSwitcher *switcher, const bound_value *values,
result = G_DB_ITEM_CLASS(g_db_switcher_parent_class)->load(G_DB_ITEM(switcher), values, count);
- result &= load_vmpa(&switcher->addr, values, count);
+ result &= load_vmpa(&switcher->addr, NULL, values, count);
if (result)
{
@@ -865,7 +867,7 @@ static bool g_switcher_collection_create_db_table(const GSwitcherCollection *col
sql = "CREATE TABLE Switchers (" \
SQLITE_DB_ITEM_CREATE ", " \
- SQLITE_VMPA_CREATE ", " \
+ SQLITE_SIMPLE_VMPA_CREATE ", " \
"op_index INTEGER, " \
"type INTEGER" \
");";
@@ -905,7 +907,7 @@ static bool g_switcher_collection_setup_load(GSwitcherCollection *collec, bound_
values, count);
if (!status) return false;
- if (!setup_load_for_vmpa(NULL, values, count))
+ if (!setup_load_for_vmpa(NULL, NULL, values, count))
return false;
*count += 2;
@@ -913,12 +915,14 @@ static bool g_switcher_collection_setup_load(GSwitcherCollection *collec, bound_
value = &(*values)[*count - 2];
- value->name = "op_index";
+ value->cname = "op_index";
+ value->built_name = false;
value->type = SQLITE_INTEGER;
value = &(*values)[*count - 1];
- value->name = "type";
+ value->cname = "type";
+ value->built_name = false;
value->type = SQLITE_INTEGER;
return true;
diff --git a/src/analysis/db/misc/rlestr.c b/src/analysis/db/misc/rlestr.c
index 3f45df6..a4647c1 100644
--- a/src/analysis/db/misc/rlestr.c
+++ b/src/analysis/db/misc/rlestr.c
@@ -267,7 +267,8 @@ bool prepare_db_statement_for_rle_string(const rle_string *str, const char *name
*values = (bound_value *)realloc(*values, ++(*count) * sizeof(bound_value));
value = &(*values)[*count - 1];
- value->name = name;
+ value->cname = name;
+ value->built_name = false;
value->type = (get_rle_string(str) != NULL ? SQLITE_TEXT : SQLITE_NULL);
value->cstring = get_rle_string(str);
value->delete = SQLITE_STATIC;
@@ -299,7 +300,8 @@ bool setup_load_of_rle_string(const rle_string *str, const char *name, bound_val
*values = (bound_value *)realloc(*values, ++(*count) * sizeof(bound_value));
value = &(*values)[*count - 1];
- value->name = name;
+ value->cname = name;
+ value->built_name = false;
value->type = SQLITE_NATIVE;
return true;
diff --git a/src/analysis/db/misc/timestamp.c b/src/analysis/db/misc/timestamp.c
index d3ff474..3772a70 100644
--- a/src/analysis/db/misc/timestamp.c
+++ b/src/analysis/db/misc/timestamp.c
@@ -197,7 +197,8 @@ bool prepare_db_statement_for_timestamp(const timestamp_t *timestamp, const char
*values = (bound_value *)realloc(*values, ++(*count) * sizeof(bound_value));
value = &(*values)[*count - 1];
- value->name = name;
+ value->cname = name;
+ value->built_name = false;
value->type = SQLITE_INT64;
value->integer64 = *timestamp;
@@ -228,7 +229,8 @@ bool setup_load_of_timestamp(const timestamp_t *timestamp, const char *name, bou
*values = (bound_value *)realloc(*values, ++(*count) * sizeof(bound_value));
value = &(*values)[*count - 1];
- value->name = name;
+ value->cname = name;
+ value->built_name = false;
value->type = SQLITE_INT64;
return true;
diff --git a/src/arch/vmpa.c b/src/arch/vmpa.c
index 3b1bcec..7231c2c 100644
--- a/src/arch/vmpa.c
+++ b/src/arch/vmpa.c
@@ -553,6 +553,7 @@ vmpa2t *string_to_vmpa_virt(const char *buffer)
/******************************************************************************
* *
* Paramètres : addr = localisation dont la définition est à consulter. *
+* base = tronc commun pour les champs de la base de données. *
* values = tableau d'éléments à compléter. [OUT] *
* count = nombre de descriptions renseignées. [OUT] *
* *
@@ -564,7 +565,7 @@ vmpa2t *string_to_vmpa_virt(const char *buffer)
* *
******************************************************************************/
-bool setup_load_for_vmpa(const vmpa2t *addr, bound_value **values, size_t *count)
+bool setup_load_for_vmpa(const vmpa2t *addr, const char *base, bound_value **values, size_t *count)
{
bound_value *value; /* Valeur à éditer / définir */
@@ -573,12 +574,14 @@ bool setup_load_for_vmpa(const vmpa2t *addr, bound_value **values, size_t *count
value = &(*values)[*count - 2];
- value->name = "phys";
+ asprintf(&value->name, "%s%sphys", base != NULL ? base : "", base != NULL ? "_" : "");
+ value->built_name = true;
value->type = SQLITE_NATIVE;
value = &(*values)[*count - 1];
- value->name = "virt";
+ asprintf(&value->name, "%s%svirt", base != NULL ? base : "", base != NULL ? "_" : "");
+ value->built_name = true;
value->type = SQLITE_NATIVE;
return true;
@@ -589,6 +592,7 @@ bool setup_load_for_vmpa(const vmpa2t *addr, bound_value **values, size_t *count
/******************************************************************************
* *
* Paramètres : addr = localisation dont la définition est à définir. *
+* base = tronc commun pour les champs de la base de données. *
* values = tableau d'éléments à consulter. *
* count = nombre de descriptions renseignées. *
* *
@@ -600,11 +604,17 @@ bool setup_load_for_vmpa(const vmpa2t *addr, bound_value **values, size_t *count
* *
******************************************************************************/
-bool load_vmpa(vmpa2t *addr, const bound_value *values, size_t count)
+bool load_vmpa(vmpa2t *addr, const char *base, const bound_value *values, size_t count)
{
+ char *name; /* Désignation complète */
const bound_value *value; /* Valeur à intégrer */
- value = find_bound_value(values, count, "phys");
+ asprintf(&name, "%s%sphys", base != NULL ? base : "", base != NULL ? "_" : "");
+
+ value = find_bound_value(values, count, name);
+
+ free(name);
+
if (value == NULL) return false;
switch (value->type)
@@ -623,7 +633,12 @@ bool load_vmpa(vmpa2t *addr, const bound_value *values, size_t count)
}
- value = find_bound_value(values, count, "virt");
+ asprintf(&name, "%s%svirt", base != NULL ? base : "", base != NULL ? "_" : "");
+
+ value = find_bound_value(values, count, name);
+
+ free(name);
+
if (value == NULL) return false;
switch (value->type)
@@ -650,6 +665,7 @@ bool load_vmpa(vmpa2t *addr, const bound_value *values, size_t count)
/******************************************************************************
* *
* Paramètres : addr = adresse virtuelle ou physique à traiter. *
+* base = tronc commun pour les champs de la base de données. *
* values = couples de champs et de valeurs à lier. [OUT] *
* count = nombre de ces couples. [OUT] *
* *
@@ -661,14 +677,15 @@ bool load_vmpa(vmpa2t *addr, const bound_value *values, size_t count)
* *
******************************************************************************/
-bool prepare_vmpa_db_statement(const vmpa2t *addr, bound_value **values, size_t *count)
+bool prepare_vmpa_db_statement(const vmpa2t *addr, const char *base, bound_value **values, size_t *count)
{
bound_value *value; /* Valeur à éditer / définir */
*values = (bound_value *)realloc(*values, ++(*count) * sizeof(bound_value));
value = &(*values)[*count - 1];
- value->name = "phys";
+ asprintf(&value->name, "%s%sphys", base != NULL ? base : "", base != NULL ? "_" : "");
+ value->built_name = true;
if (addr->physical != VMPA_NO_PHYSICAL)
{
@@ -683,7 +700,8 @@ bool prepare_vmpa_db_statement(const vmpa2t *addr, bound_value **values, size_t
*values = (bound_value *)realloc(*values, ++(*count) * sizeof(bound_value));
value = &(*values)[*count - 1];
- value->name = "virt";
+ asprintf(&value->name, "%s%svirt", base != NULL ? base : "", base != NULL ? "_" : "");
+ value->built_name = true;
if (addr->virtual != VMPA_NO_VIRTUAL)
{
diff --git a/src/arch/vmpa.h b/src/arch/vmpa.h
index cfb9ab5..9905241 100644
--- a/src/arch/vmpa.h
+++ b/src/arch/vmpa.h
@@ -135,18 +135,18 @@ vmpa2t *string_to_vmpa_phy(const char *);
vmpa2t *string_to_vmpa_virt(const char *);
/* Définition du tronc commun pour les créations SQLite */
-#define SQLITE_VMPA_CREATE \
- "phys INTEGER, " \
+#define SQLITE_SIMPLE_VMPA_CREATE \
+ "phys INTEGER, " \
"virt INTEGER"
/* Décrit les colonnes utiles à un chargement de données. */
-bool setup_load_for_vmpa(const vmpa2t *, bound_value **, size_t *);
+bool setup_load_for_vmpa(const vmpa2t *, const char *, bound_value **, size_t *);
/* Charge les valeurs utiles pour une localisation. */
-bool load_vmpa(vmpa2t *, const bound_value *, size_t);
+bool load_vmpa(vmpa2t *, const char *, const bound_value *, size_t);
/* Constitue les champs destinés à une insertion / modification. */
-bool prepare_vmpa_db_statement(const vmpa2t *, bound_value **, size_t *);
+bool prepare_vmpa_db_statement(const vmpa2t *, const char *, bound_value **, size_t *);
diff --git a/src/common/sqlite.c b/src/common/sqlite.c
index ec3c280..2fe1096 100644
--- a/src/common/sqlite.c
+++ b/src/common/sqlite.c
@@ -24,6 +24,7 @@
#include "sqlite.h"
+#include <malloc.h>
#include <string.h>
@@ -32,6 +33,41 @@
* *
* Paramètres : values = tableau d'éléments à consulter. *
* count = nombre de descriptions renseignées. *
+* *
+* Description : Libère de la mémoire un ensemble de valeurs en fin de vie. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void free_all_bound_values(bound_value *values, size_t count)
+{
+ size_t i; /* Boucle de parcours */
+ bound_value *value; /* Valeur à traiter */
+
+ return;
+
+ for (i = 0; i < count; i++)
+ {
+ value = values + i;
+
+ if (value->built_name)
+ free(value->name);
+
+ }
+
+ if (values != NULL)
+ free(values);
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : values = tableau d'éléments à consulter. *
+* count = nombre de descriptions renseignées. *
* name = désignation de la valeur recherchée. *
* *
* Description : Effectue une recherche au sein d'un ensemble de valeurs. *
diff --git a/src/common/sqlite.h b/src/common/sqlite.h
index 064972b..e4f05a2 100644
--- a/src/common/sqlite.h
+++ b/src/common/sqlite.h
@@ -41,7 +41,14 @@
/* Description des champs et de leur valeur associée */
typedef struct _bound_value
{
- const char *name; /* Nom du champ à manipuler */
+ union
+ {
+ char *name; /* Nom du champ à manipuler #1 */
+ const char *cname; /* Nom du champ à manipuler #2 */
+
+ };
+ bool built_name; /* Nom à libérer après usage */
+
unsigned int type; /* Type de valeur à associer */
union
@@ -59,6 +66,9 @@ typedef struct _bound_value
} bound_value;
+/* Libère de la mémoire un ensemble de valeurs en fin de vie. */
+void free_all_bound_values(bound_value *, size_t);
+
/* Effectue une recherche au sein d'un ensemble de valeurs. */
const bound_value *find_bound_value(const bound_value *, size_t, const char *);
diff --git a/src/gtkext/gtkextstatusbar.c b/src/gtkext/gtkextstatusbar.c
index e936866..c195959 100644
--- a/src/gtkext/gtkextstatusbar.c
+++ b/src/gtkext/gtkextstatusbar.c
@@ -223,6 +223,8 @@ bstatus_id_t gtk_extended_status_bar_push(GtkExtStatusBar *bar, const char *mess
size_t index; /* Indice du nouvel élément */
bar_update_info *info; /* Informations à mémoriser */
+ return 0;
+
if (bar == NULL) return 0;
/* Mise à jour de la pile */
@@ -276,6 +278,8 @@ void gtk_extended_status_bar_update_activity(GtkExtStatusBar *bar, bstatus_id_t
{
bar_update_info *info; /* Informations à mémoriser */
+ return;
+
if (bar == NULL) return;
/* Mise à jour de la pile */
@@ -319,6 +323,8 @@ void gtk_extended_status_bar_remove(GtkExtStatusBar *bar, bstatus_id_t id)
size_t i; /* Boucle de parcours */
bar_update_info *info; /* Informations à mémoriser */
+ return;
+
if (bar == NULL) return;
/* Mise à jour de la pile */