summaryrefslogtreecommitdiff
path: root/src/common
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 /src/common
parentbde67ccf58fc858d5d0db4929db149ea12f50f96 (diff)
Given more flexibility to the field names of locations in XML databases.
Diffstat (limited to 'src/common')
-rw-r--r--src/common/sqlite.c36
-rw-r--r--src/common/sqlite.h12
2 files changed, 47 insertions, 1 deletions
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 *);